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.

scrapy crawl myspider -s LOG_FILE = scrapy.log
2

Settings per-spider

Spinnen können ihre eigenen Einstellungen haben, die die Projekteinstellungen überschreiben, indem sie das Attribut custom_settings verwenden.

class DemoSpider(scrapy.Spider): 
   name = 'demo'  
   custom_settings = { 
      'SOME_SETTING': 'some value', 
   }
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 -

{  
   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,
	*/*;q=0.8', 'Accept-Language': 'en',  
}
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 -

{ 'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware': 100, }
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 -

{ 'file': 'scrapy.core.downloader.handlers.file.FileDownloadHandler', }
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 -

{ 
   'scrapy.contracts.default.UrlContract' : 1, 
   'scrapy.contracts.default.ReturnsContract': 2, 
}
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 -

{ 
   'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50, 
}
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 .