Scrapy - Impostazioni

Descrizione

Il comportamento dei componenti Scrapy può essere modificato utilizzando le impostazioni Scrapy. Le impostazioni possono anche selezionare il progetto Scrapy attualmente attivo, nel caso tu abbia più progetti Scrapy.

Designazione delle impostazioni

Devi comunicare a Scrapy quale impostazione stai utilizzando quando scarti un sito web. Per questo, variabile d'ambienteSCRAPY_SETTINGS_MODULE dovrebbe essere usato e il suo valore dovrebbe essere nella sintassi del percorso Python.

Popolamento delle impostazioni

La tabella seguente mostra alcuni dei meccanismi con cui è possibile popolare le impostazioni:

Suor n Meccanismo e descrizione
1

Command line options

Qui, gli argomenti passati hanno la massima precedenza sovrascrivendo le altre opzioni. -S viene utilizzato per sovrascrivere una o più impostazioni.

scrapy crawl myspider -s LOG_FILE = scrapy.log
2

Settings per-spider

Gli spider possono avere le proprie impostazioni che sovrascrivono quelle del progetto utilizzando l'attributo custom_settings.

class DemoSpider(scrapy.Spider): 
   name = 'demo'  
   custom_settings = { 
      'SOME_SETTING': 'some value', 
   }
3

Project settings module

Qui puoi popolare le tue impostazioni personalizzate come l'aggiunta o la modifica delle impostazioni nel file settings.py.

4

Default settings per-command

Ogni comando dello strumento Scrapy definisce le proprie impostazioni nell'attributo default_settings, per sovrascrivere le impostazioni predefinite globali.

5

Default global settings

Queste impostazioni si trovano nel modulo scrapy.settings.default_settings.

Impostazioni di accesso

Sono disponibili tramite self.settings e impostati nello spider di base dopo che è stato inizializzato.

Il seguente esempio lo dimostra.

class DemoSpider(scrapy.Spider): 
   name = 'demo' 
   start_urls = ['http://example.com']  
   def parse(self, response): 
      print("Existing settings: %s" % self.settings.attributes.keys())

Per usare le impostazioni prima di inizializzare lo spider, devi sovrascrivere il metodo from_crawler nel metodo _init_ () del tuo spider. È possibile accedere alle impostazioni tramite l'attributo scrapy.crawler.Crawler.settings passato al metodo from_crawler .

Il seguente esempio lo dimostra.

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'))

Motivazioni per l'impostazione dei nomi

I nomi delle impostazioni vengono aggiunti come prefisso al componente che configurano. Ad esempio, per l'estensione robots.txt, i nomi delle impostazioni possono essere ROBOTSTXT_ENABLED, ROBOTSTXT_OBEY, ROBOTSTXT_CACHEDIR e così via.

Riferimento alle impostazioni integrate

La tabella seguente mostra le impostazioni integrate di Scrapy:

Suor n Impostazione e descrizione
1

AWS_ACCESS_KEY_ID

Viene utilizzato per accedere a Amazon Web Services.

Valore predefinito: Nessuno

2

AWS_SECRET_ACCESS_KEY

Viene utilizzato per accedere a Amazon Web Services.

Valore predefinito: Nessuno

3

BOT_NAME

È il nome del bot che può essere utilizzato per costruire User-Agent.

Valore predefinito: "scrapybot"

4

CONCURRENT_ITEMS

Numero massimo di articoli esistenti nell'elaboratore articoli utilizzati per l'elaborazione parallela.

Valore predefinito: 100

5

CONCURRENT_REQUESTS

Numero massimo di richieste esistenti eseguite da Scrapy downloader.

Valore predefinito: 16

6

CONCURRENT_REQUESTS_PER_DOMAIN

Numero massimo di richieste esistenti che vengono eseguite simultaneamente per ogni singolo dominio.

Valore predefinito: 8

7

CONCURRENT_REQUESTS_PER_IP

Numero massimo di richieste esistenti che vengono eseguite simultaneamente su un singolo IP.

Valore predefinito: 0

8

DEFAULT_ITEM_CLASS

È una classe usata per rappresentare gli oggetti.

Valore predefinito: "scrapy.item.Item"

9

DEFAULT_REQUEST_HEADERS

È un'intestazione predefinita utilizzata per le richieste HTTP di Scrapy.

Valore predefinito -

{  
   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,
	*/*;q=0.8', 'Accept-Language': 'en',  
}
10

DEPTH_LIMIT

La profondità massima per la scansione di un sito da parte di un ragno.

Valore predefinito: 0

11

DEPTH_PRIORITY

È un numero intero utilizzato per modificare la priorità della richiesta in base alla profondità.

Valore predefinito: 0

12

DEPTH_STATS

Indica se raccogliere statistiche di profondità o meno.

Valore predefinito: vero

13

DEPTH_STATS_VERBOSE

Questa impostazione, se abilitata, il numero di richieste viene raccolto nelle statistiche per ogni profondità dettagliata.

Valore predefinito: False

14

DNSCACHE_ENABLED

Viene utilizzato per abilitare il DNS nella cache di memoria.

Valore predefinito: vero

15

DNSCACHE_SIZE

Definisce la dimensione del DNS nella cache di memoria.

Valore predefinito: 10000

16

DNS_TIMEOUT

Viene utilizzato per impostare il timeout per il DNS per elaborare le query.

Valore predefinito: 60

17

DOWNLOADER

È un downloader utilizzato per il processo di scansione.

Valore predefinito: "scrapy.core.downloader.Downloader"

18

DOWNLOADER_MIDDLEWARES

È un dizionario contenente il middleware dei downloader e i loro ordini.

Valore predefinito: {}

19

DOWNLOADER_MIDDLEWARES_BASE

È un dizionario che contiene il middleware del downloader che è abilitato per impostazione predefinita.

Valore predefinito -

{ 'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware': 100, }
20

DOWNLOADER_STATS

Questa impostazione viene utilizzata per abilitare le statistiche del downloader.

Valore predefinito: vero

21

DOWNLOAD_DELAY

Definisce il tempo totale per il downloader prima che scarichi le pagine dal sito.

Valore predefinito: 0

22

DOWNLOAD_HANDLERS

È un dizionario con gestori di download.

Valore predefinito: {}

23

DOWNLOAD_HANDLERS_BASE

È un dizionario con gestori di download abilitato per impostazione predefinita.

Valore predefinito -

{ 'file': 'scrapy.core.downloader.handlers.file.FileDownloadHandler', }
24

DOWNLOAD_TIMEOUT

È il tempo totale di attesa del downloader prima che scada.

Valore predefinito: 180

25

DOWNLOAD_MAXSIZE

È la dimensione massima della risposta da scaricare per il downloader.

Valore predefinito: 1073741824 (1024 MB)

26

DOWNLOAD_WARNSIZE

Definisce la dimensione della risposta che il downloader deve avvertire.

Valore predefinito: 33554432 (32 MB)

27

DUPEFILTER_CLASS

È una classe utilizzata per rilevare e filtrare le richieste duplicate.

Valore predefinito: "scrapy.dupefilters.RFPDupeFilter"

28

DUPEFILTER_DEBUG

Questa impostazione registra tutti i filtri duplicati se impostata su true.

Valore predefinito: False

29

EDITOR

Viene utilizzato per modificare gli spider utilizzando il comando di modifica.

Valore predefinito: dipende dall'ambiente

30

EXTENSIONS

È un dizionario con estensioni abilitate nel progetto.

Valore predefinito: {}

31

EXTENSIONS_BASE

È un dizionario con estensioni incorporate.

Valore predefinito: {'scrapy.extensions.corestats.CoreStats': 0,}

32

FEED_TEMPDIR

È una directory utilizzata per impostare la cartella personalizzata in cui è possibile archiviare i file temporanei del crawler.

33

ITEM_PIPELINES

È un dizionario con pipeline.

Valore predefinito: {}

34

LOG_ENABLED

Definisce se la registrazione deve essere abilitata.

Valore predefinito: vero

35

LOG_ENCODING

Definisce il tipo di codifica da utilizzare per la registrazione.

Valore predefinito: "utf-8"

36

LOG_FILE

È il nome del file da utilizzare per l'output della registrazione.

Valore predefinito: Nessuno

37

LOG_FORMAT

È una stringa che consente di formattare i messaggi di registro.

Valore predefinito: '% (asctime) s [% (name) s]% (levelname) s:% (message) s'

38

LOG_DATEFORMAT

È una stringa che utilizza la quale è possibile formattare data / ora.

Valore predefinito: '% Y-% m-% d% H:% M:% S'

39

LOG_LEVEL

Definisce il livello minimo di registrazione.

Valore predefinito: "DEBUG"

40

LOG_STDOUT

Se questa impostazione è impostata su true, tutto l'output del processo verrà visualizzato nel registro.

Valore predefinito: False

41

MEMDEBUG_ENABLED

Definisce se il debug della memoria deve essere abilitato.

Valore predefinito: False

42

MEMDEBUG_NOTIFY

Definisce il rapporto sulla memoria che viene inviato a un particolare indirizzo quando è abilitato il debug della memoria.

Valore predefinito: []

43

MEMUSAGE_ENABLED

Definisce se l'utilizzo della memoria deve essere abilitato quando un processo Scrapy supera un limite di memoria.

Valore predefinito: False

44

MEMUSAGE_LIMIT_MB

Definisce il limite massimo consentito per la memoria (in megabyte).

Valore predefinito: 0

45

MEMUSAGE_CHECK_INTERVAL_SECONDS

Viene utilizzato per controllare l'attuale utilizzo della memoria impostando la lunghezza degli intervalli.

Valore predefinito: 60,0

46

MEMUSAGE_NOTIFY_MAIL

Viene utilizzato per notificare con un elenco di e-mail quando la memoria raggiunge il limite.

Valore predefinito: False

47

MEMUSAGE_REPORT

Definisce se il rapporto sull'utilizzo della memoria deve essere inviato alla chiusura di ogni spider.

Valore predefinito: False

48

MEMUSAGE_WARNING_MB

Definisce una memoria totale da consentire prima dell'invio di un avviso.

Valore predefinito: 0

49

NEWSPIDER_MODULE

È un modulo in cui viene creato un nuovo spider utilizzando il comando genspider.

Valore predefinito: ''

50

RANDOMIZE_DOWNLOAD_DELAY

Definisce un periodo di tempo casuale che uno Scrapy deve attendere durante il download delle richieste dal sito.

Valore predefinito: vero

51

REACTOR_THREADPOOL_MAXSIZE

Definisce una dimensione massima per il pool di thread del reattore.

Valore predefinito: 10

52

REDIRECT_MAX_TIMES

Definisce quante volte una richiesta può essere reindirizzata.

Valore predefinito: 20

53

REDIRECT_PRIORITY_ADJUST

Questa impostazione, se impostata, regola la priorità di reindirizzamento di una richiesta.

Valore predefinito: +2

54

RETRY_PRIORITY_ADJUST

Questa impostazione, se impostata, regola la priorità dei tentativi di una richiesta.

Valore predefinito: -1

55

ROBOTSTXT_OBEY

Scrapy obbedisce alle norme del file robots.txt se impostato su true .

Valore predefinito: False

56

SCHEDULER

Definisce lo scheduler da utilizzare a scopo di scansione.

Valore predefinito: "scrapy.core.scheduler.Scheduler"

57

SPIDER_CONTRACTS

È un dizionario nel progetto con contratti di ragno per testare i ragni.

Valore predefinito: {}

58

SPIDER_CONTRACTS_BASE

È un dizionario che contiene i contratti Scrapy che è abilitato in Scrapy per impostazione predefinita.

Valore predefinito -

{ 
   'scrapy.contracts.default.UrlContract' : 1, 
   'scrapy.contracts.default.ReturnsContract': 2, 
}
59

SPIDER_LOADER_CLASS

Definisce una classe che implementa l'API SpiderLoader per caricare gli spider.

Valore predefinito: "scrapy.spiderloader.SpiderLoader"

60

SPIDER_MIDDLEWARES

È un dizionario che contiene middleware ragno.

Valore predefinito: {}

61

SPIDER_MIDDLEWARES_BASE

È un dizionario che contiene middleware spider che è abilitato in Scrapy per impostazione predefinita.

Valore predefinito -

{ 
   'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50, 
}
62

SPIDER_MODULES

È un elenco di moduli contenenti spider che Scrapy cercherà.

Valore predefinito: []

63

STATS_CLASS

È una classe che implementa Stats Collector API per raccogliere statistiche.

Valore predefinito: "scrapy.statscollectors.MemoryStatsCollector"

64

STATS_DUMP

Questa impostazione, se impostata su true, scarica le statistiche nel registro.

Valore predefinito: vero

65

STATSMAILER_RCPTS

Una volta che i ragni finiscono di raschiare, Scrapy usa questa impostazione per inviare le statistiche.

Valore predefinito: []

66

TELNETCONSOLE_ENABLED

Definisce se abilitare la telnetconsole.

Valore predefinito: vero

67

TELNETCONSOLE_PORT

Definisce una porta per la console telnet.

Valore predefinito: [6023, 6073]

68

TEMPLATES_DIR

È una directory contenente modelli che possono essere utilizzati durante la creazione di nuovi progetti.

Valore predefinito: directory dei modelli all'interno del modulo scrapy

69

URLLENGTH_LIMIT

Definisce il limite massimo della lunghezza consentita per l'URL per gli URL sottoposti a scansione.

Valore predefinito: 2083

70

USER_AGENT

Definisce l'agente utente da utilizzare durante la scansione di un sito.

Valore predefinito: "Scrapy / VERSION (+ http: //scrapy.org)"

Per altre impostazioni di Scrapy, vai a questo link .