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. |
2 | Settings per-spider Gli spider possono avere le proprie impostazioni che sovrascrivono quelle del progetto utilizzando l'attributo custom_settings. |
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 - |
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 - |
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 - |
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 - |
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 - |
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 .