Scrapy - Einstellungen
Beschreibung
Das Verhalten von Scrapy-Komponenten kann mithilfe der Scrapy-Einstellungen geändert werden. Die Einstellungen können auch das aktuell aktive Scrapy-Projekt auswählen, falls Sie mehrere Scrapy-Projekte haben.
Einstellungen festlegen
Sie müssen Scrapy mitteilen, welche Einstellung Sie beim Verschrotten einer Website verwenden. Hierfür UmgebungsvariableSCRAPY_SETTINGS_MODULE sollte verwendet werden und sein Wert sollte in der Python-Pfadsyntax sein.
Auffüllen der Einstellungen
Die folgende Tabelle zeigt einige der Mechanismen, mit denen Sie die Einstellungen auffüllen können -
Sr.Nr. | Mechanismus & Beschreibung |
---|---|
1 | Command line options Hier haben die übergebenen Argumente höchste Priorität, indem andere Optionen überschrieben werden. Das -s wird verwendet, um eine oder mehrere Einstellungen zu überschreiben. |
2 | Settings per-spider Spinnen können ihre eigenen Einstellungen haben, die die Projekteinstellungen überschreiben, indem sie das Attribut custom_settings verwenden. |
3 | Project settings module Hier können Sie Ihre benutzerdefinierten Einstellungen wie das Hinzufügen oder Ändern der Einstellungen in der Datei settings.py auffüllen. |
4 | Default settings per-command Jeder Scrapy-Tool-Befehl definiert seine eigenen Einstellungen im Attribut default_settings, um die globalen Standardeinstellungen zu überschreiben. |
5 | Default global settings Diese Einstellungen finden Sie im Modulrapy.settings.default_settings. |
Zugriffseinstellungen
Sie sind über self.settings verfügbar und werden nach der Initialisierung in der Basisspinne festgelegt.
Das folgende Beispiel zeigt dies.
class DemoSpider(scrapy.Spider):
name = 'demo'
start_urls = ['http://example.com']
def parse(self, response):
print("Existing settings: %s" % self.settings.attributes.keys())
Um Einstellungen vor dem Initialisieren der Spinne zu verwenden, müssen Sie die Methode from_crawler in der Methode _init_ () Ihrer Spinne überschreiben . Sie können auf Einstellungen über das Attribut Scrapy.crawler.Crawler.settings zugreifen, das an die Methode from_crawler übergeben wird.
Das folgende Beispiel zeigt dies.
class MyExtension(object):
def __init__(self, log_is_enabled = False):
if log_is_enabled:
print("Enabled log")
@classmethod
def from_crawler(cls, crawler):
settings = crawler.settings
return cls(settings.getbool('LOG_ENABLED'))
Begründung für das Festlegen von Namen
Einstellungsnamen werden der von ihnen konfigurierten Komponente als Präfix hinzugefügt. Für die Erweiterung robots.txt können die Einstellungsnamen beispielsweise ROBOTSTXT_ENABLED, ROBOTSTXT_OBEY, ROBOTSTXT_CACHEDIR usw. sein.
Referenz für integrierte Einstellungen
Die folgende Tabelle zeigt die integrierten Einstellungen von Scrapy -
Sr.Nr. | Einstellung & Beschreibung |
---|---|
1 | AWS_ACCESS_KEY_ID Es wird verwendet, um auf Amazon Web Services zuzugreifen. Standardwert: Keine |
2 | AWS_SECRET_ACCESS_KEY Es wird verwendet, um auf Amazon Web Services zuzugreifen. Standardwert: Keine |
3 | BOT_NAME Dies ist der Name des Bots, der zum Erstellen des User-Agent verwendet werden kann. Standardwert: 'Scrapybot' |
4 | CONCURRENT_ITEMS Maximale Anzahl vorhandener Elemente im Elementprozessor, die zur parallelen Verarbeitung verwendet werden. Standardwert: 100 |
5 | CONCURRENT_REQUESTS Maximale Anzahl vorhandener Anforderungen, die der Scrapy-Downloader ausführt. Standardwert: 16 |
6 | CONCURRENT_REQUESTS_PER_DOMAIN Maximale Anzahl vorhandener Anforderungen, die gleichzeitig für eine einzelne Domäne ausgeführt werden. Standardwert: 8 |
7 | CONCURRENT_REQUESTS_PER_IP Maximale Anzahl vorhandener Anforderungen, die gleichzeitig für eine einzelne IP ausgeführt werden. Standardwert: 0 |
8 | DEFAULT_ITEM_CLASS Es ist eine Klasse, die zur Darstellung von Elementen verwendet wird. Standardwert:'rapy.item.Item ' |
9 | DEFAULT_REQUEST_HEADERS Dies ist ein Standardheader, der für HTTP-Anforderungen von Scrapy verwendet wird. Standardwert - |
10 | DEPTH_LIMIT Die maximale Tiefe, in der eine Spinne eine Site crawlen kann. Standardwert: 0 |
11 | DEPTH_PRIORITY Es ist eine Ganzzahl, die verwendet wird, um die Priorität der Anforderung entsprechend der Tiefe zu ändern. Standardwert: 0 |
12 | DEPTH_STATS Es gibt an, ob Tiefenstatistiken gesammelt werden sollen oder nicht. Standardwert: True |
13 | DEPTH_STATS_VERBOSE Wenn diese Einstellung aktiviert ist, wird die Anzahl der Anforderungen in Statistiken für jede ausführliche Tiefe erfasst. Standardwert: False |
14 | DNSCACHE_ENABLED Es wird verwendet, um DNS im Speichercache zu aktivieren. Standardwert: True |
15 | DNSCACHE_SIZE Es definiert die Größe des DNS im Speichercache. Standardwert: 10000 |
16 | DNS_TIMEOUT Es wird verwendet, um das Zeitlimit für DNS festzulegen, um die Abfragen zu verarbeiten. Standardwert: 60 |
17 | DOWNLOADER Es ist ein Downloader, der für den Crawling-Prozess verwendet wird. Standardwert:'rapy.core.downloader.Downloader ' |
18 | DOWNLOADER_MIDDLEWARES Es ist ein Wörterbuch, das die Downloader-Middleware und ihre Bestellungen enthält. Standardwert: {} |
19 | DOWNLOADER_MIDDLEWARES_BASE Es ist ein Wörterbuch mit Downloader-Middleware, das standardmäßig aktiviert ist. Standardwert - |
20 | DOWNLOADER_STATS Diese Einstellung wird verwendet, um die Downloader-Statistiken zu aktivieren. Standardwert: True |
21 | DOWNLOAD_DELAY Es definiert die Gesamtzeit für den Downloader, bevor die Seiten von der Site heruntergeladen werden. Standardwert: 0 |
22 | DOWNLOAD_HANDLERS Es ist ein Wörterbuch mit Download-Handlern. Standardwert: {} |
23 | DOWNLOAD_HANDLERS_BASE Es ist ein Wörterbuch mit Download-Handlern, das standardmäßig aktiviert ist. Standardwert - |
24 | DOWNLOAD_TIMEOUT Es ist die Gesamtzeit, die der Downloader warten muss, bevor das Zeitlimit überschritten wird. Standardwert: 180 |
25 | DOWNLOAD_MAXSIZE Dies ist die maximale Antwortgröße, die der Downloader herunterladen kann. Standardwert: 1073741824 (1024 MB) |
26 | DOWNLOAD_WARNSIZE Es definiert die Größe der Antwort, die der Downloader warnen soll. Standardwert: 33554432 (32 MB) |
27 | DUPEFILTER_CLASS Diese Klasse wird zum Erkennen und Filtern von doppelten Anforderungen verwendet. Standardwert:'rapy.dupefilters.RFPDupeFilter ' |
28 | DUPEFILTER_DEBUG Diese Einstellung protokolliert alle doppelten Filter, wenn sie auf true gesetzt sind. Standardwert: False |
29 | EDITOR Es wird verwendet, um Spinnen mit dem Befehl edit zu bearbeiten. Standardwert: Abhängig von der Umgebung |
30 | EXTENSIONS Es ist ein Wörterbuch mit Erweiterungen, die im Projekt aktiviert sind. Standardwert: {} |
31 | EXTENSIONS_BASE Es ist ein Wörterbuch mit integrierten Erweiterungen. Standardwert: {'rapy.extensions.corestats.CoreStats ': 0,} |
32 | FEED_TEMPDIR In diesem Verzeichnis wird der benutzerdefinierte Ordner festgelegt, in dem temporäre Crawler-Dateien gespeichert werden können. |
33 | ITEM_PIPELINES Es ist ein Wörterbuch mit Pipelines. Standardwert: {} |
34 | LOG_ENABLED Es definiert, ob die Protokollierung aktiviert werden soll. Standardwert: True |
35 | LOG_ENCODING Es definiert die Art der Codierung, die für die Protokollierung verwendet werden soll. Standardwert: 'utf-8' |
36 | LOG_FILE Dies ist der Name der Datei, die für die Ausgabe der Protokollierung verwendet werden soll. Standardwert: Keine |
37 | LOG_FORMAT Es ist eine Zeichenfolge, mit der die Protokollnachrichten formatiert werden können. Standardwert: '% (asctime) s [% (name) s]% (levelname) s:% (message) s' |
38 | LOG_DATEFORMAT Es ist eine Zeichenfolge, mit der Datum und Uhrzeit formatiert werden können. Standardwert: '% Y-% m-% d% H:% M:% S' |
39 | LOG_LEVEL Es definiert die minimale Protokollstufe. Standardwert: 'DEBUG' |
40 | LOG_STDOUT Wenn diese Einstellung auf true gesetzt ist, werden alle Ihre Prozessausgaben im Protokoll angezeigt. Standardwert: False |
41 | MEMDEBUG_ENABLED Es definiert, ob das Speicher-Debugging aktiviert werden soll. Standardwert: False |
42 | MEMDEBUG_NOTIFY Es definiert den Speicherbericht, der an eine bestimmte Adresse gesendet wird, wenn das Speicher-Debugging aktiviert ist. Standardwert: [] |
43 | MEMUSAGE_ENABLED Es definiert, ob die Speichernutzung aktiviert werden soll, wenn ein Scrapy-Prozess ein Speicherlimit überschreitet. Standardwert: False |
44 | MEMUSAGE_LIMIT_MB Es definiert die maximale Grenze für den zulässigen Speicher (in Megabyte). Standardwert: 0 |
45 | MEMUSAGE_CHECK_INTERVAL_SECONDS Es wird verwendet, um die aktuelle Speichernutzung durch Einstellen der Länge der Intervalle zu überprüfen. Standardwert: 60.0 |
46 | MEMUSAGE_NOTIFY_MAIL Es wird verwendet, um mit einer Liste von E-Mails zu benachrichtigen, wenn der Speicher das Limit erreicht. Standardwert: False |
47 | MEMUSAGE_REPORT Es definiert, ob der Speicherauslastungsbericht beim Schließen jeder Spinne gesendet werden soll. Standardwert: False |
48 | MEMUSAGE_WARNING_MB Es definiert einen Gesamtspeicher, der zulässig sein soll, bevor eine Warnung gesendet wird. Standardwert: 0 |
49 | NEWSPIDER_MODULE Es ist ein Modul, in dem eine neue Spinne mit dem Befehl genspider erstellt wird. Standardwert: '' |
50 | RANDOMIZE_DOWNLOAD_DELAY Es definiert eine zufällige Wartezeit für einen Scrapy, während er die Anforderungen von der Site herunterlädt. Standardwert: True |
51 | REACTOR_THREADPOOL_MAXSIZE Es definiert eine maximale Größe für den Reaktor-Threadpool. Standardwert: 10 |
52 | REDIRECT_MAX_TIMES Es definiert, wie oft eine Anfrage umgeleitet werden kann. Standardwert: 20 |
53 | REDIRECT_PRIORITY_ADJUST Wenn diese Einstellung festgelegt ist, wird die Umleitungspriorität einer Anforderung angepasst. Standardwert: +2 |
54 | RETRY_PRIORITY_ADJUST Wenn diese Einstellung festgelegt ist, wird die Wiederholungspriorität einer Anforderung angepasst. Standardwert: -1 |
55 | ROBOTSTXT_OBEY Scrapy befolgt die Richtlinien von robots.txt, wenn true festgelegt ist . Standardwert: False |
56 | SCHEDULER Es definiert den Scheduler, der für Crawling-Zwecke verwendet werden soll. Standardwert:'rapy.core.scheduler.Scheduler ' |
57 | SPIDER_CONTRACTS Es ist ein Wörterbuch im Projekt mit Spinnenverträgen zum Testen der Spinnen. Standardwert: {} |
58 | SPIDER_CONTRACTS_BASE Es ist ein Wörterbuch mit Scrapy-Verträgen, das in Scrapy standardmäßig aktiviert ist. Standardwert - |
59 | SPIDER_LOADER_CLASS Es definiert eine Klasse, die die SpiderLoader-API implementiert, um Spider zu laden. Standardwert:'rapy.spiderloader.SpiderLoader ' |
60 | SPIDER_MIDDLEWARES Es ist ein Wörterbuch mit Spinnen-Middlewares. Standardwert: {} |
61 | SPIDER_MIDDLEWARES_BASE Es ist ein Wörterbuch mit Spider Middleware, das in Scrapy standardmäßig aktiviert ist. Standardwert - |
62 | SPIDER_MODULES Es ist eine Liste von Modulen mit Spinnen, nach denen Scrapy suchen wird. Standardwert: [] |
63 | STATS_CLASS Es ist eine Klasse, die die Stats Collector- API implementiert , um Statistiken zu sammeln. Standardwert:'rapy.statscollectors.MemoryStatsCollector ' |
64 | STATS_DUMP Wenn diese Einstellung auf true gesetzt ist, werden die Statistiken im Protokoll gespeichert. Standardwert: True |
65 | STATSMAILER_RCPTS Sobald die Spinnen mit dem Schaben fertig sind, verwendet Scrapy diese Einstellung, um die Statistiken zu senden. Standardwert: [] |
66 | TELNETCONSOLE_ENABLED Es definiert, ob die Telnetconsole aktiviert werden soll. Standardwert: True |
67 | TELNETCONSOLE_PORT Es definiert einen Port für die Telnet-Konsole. Standardwert: [6023, 6073] |
68 | TEMPLATES_DIR Es ist ein Verzeichnis mit Vorlagen, die beim Erstellen neuer Projekte verwendet werden können. Standardwert: Vorlagenverzeichnis im Scrapy-Modul |
69 | URLLENGTH_LIMIT Es definiert die maximale Länge der URL, die für gecrawlte URLs zulässig ist. Standardwert: 2083 |
70 | USER_AGENT Es definiert den Benutzeragenten, der beim Crawlen einer Site verwendet werden soll. Standardwert: "Scrapy / VERSION (+ http: //scrapy.org)" |
Weitere Scrapy-Einstellungen finden Sie unter diesem Link .