2016-06-03 22 views

risposta

1

Nel comando:

scrapy crawl [options] <spider> 

<spider> è il nome del progetto (definito in settings.py, come BOT_NAME).

E nel comando:

scrapy runspider [options] <spider_file> 

<spider_file> è il percorso del file che contiene il ragno.

In caso contrario, le opzioni sono le stesse:

Options 
======= 
--help, -h    show this help message and exit 
-a NAME=VALUE   set spider argument (may be repeated) 
--output=FILE, -o FILE dump scraped items into FILE (use - for stdout) 
--output-format=FORMAT, -t FORMAT 
         format to use for dumping items with -o 

Global Options 
-------------- 
--logfile=FILE   log file. if omitted stderr will be used 
--loglevel=LEVEL, -L LEVEL 
         log level (default: DEBUG) 
--nolog     disable logging completely 
--profile=FILE   write python cProfile stats to FILE 
--lsprof=FILE   write lsprof profiling stats to FILE 
--pidfile=FILE   write process ID to FILE 
--set=NAME=VALUE, -s NAME=VALUE 
         set/override setting (may be repeated) 
--pdb     enable pdb on failure 

Dal runspider non dipende dal parametro BOT_NAME, a seconda del modo in cui si sta personalizzando le vostre ruspe, si potrebbe trovare runspider più flessibile.

3

La piccola spiegazione e la sintassi di entrambi:

runspider

Sintassi: scrapy runspider <spider_file.py>

Richiede progetto: no

Eseguire un ragno auto-contenuto in un file Python, senza dovendo creare un progetto.

Esempio utilizzo:

$ scrapy runspider myspider.py 

crawl

Sintassi: scrapy crawl <spider>

Richiede progetto: sì

Avvia scansione utilizzando un ragno con il nome corrispondente.

esempi

utilizzo:

$ scrapy crawl myspider 
3

La differenza principale è che runspider non ha bisogno di un progetto. Cioè, puoi scrivere uno spider in un file myspider.py e chiamare scrapy runspider myspider.py.

Il comando crawl richiede un progetto per trovare le impostazioni del progetto, caricare gli spider disponibili dalle impostazioni SPIDER_MODULES e cercare lo spider di name.

Se è necessario lo spider veloce per un'attività breve, lo runspider richiede un numero di piastre inferiore.

+0

come fa il runpider a prendere le sue impostazioni allora? – hAcKnRoCk

+1

@hAcKnRoCk è facoltativo. Se usi il comando 'runpider' all'interno di una directory di progetto userà le impostazioni del progetto. Altrimenti, verrà eseguito con i valori predefiniti. – Rolando