Qualcuno può spiegare la differenza tra runpider e crawl comandi? Quali sono i contesti in cui dovrebbero essere utilizzati?Python Scrapy: Qual è la differenza tra i comandi "runspider" e "crawl"?
risposta
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.
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.
esempiutilizzo:
$ scrapy crawl myspider
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.
- 1. qual è la differenza tra i comandi linux e unix?
- 2. Qual è la differenza tra% i e% d in Python?
- 3. Qual è la differenza tra Python attivo e Python?
- 4. Qual è la differenza tra dict() e {}?
- 5. Qual è la differenza tra ptr [i] e * (ptr + i)?
- 6. Qual è la differenza tra __add__ e __concat__ di Python?
- 7. Python: Qual è la differenza tra __builtin__ e __builtins__?
- 8. In Python, qual è la differenza tra pass e return
- 9. Qual è la differenza tra lista e lista [:] in python?
- 10. Qual è la differenza tra letterale e variabili in Python?
- 11. qual è la differenza tra l'os.open e os.fdopen in python
- 12. Qual è la differenza tra liste e tuple in Python?
- 13. Qual è la differenza tra pytz e python-dateutil?
- 14. Twisted (Python) - qual è la differenza tra cooperare e coiterare?
- 15. Qual è la differenza tra json.dump() e json.dumps() in python?
- 16. In python, qual è la differenza tra random.uniform() e random.random()?
- 17. In Python, qual è la differenza tra ".append()" e "+ = []"?
- 18. Qual è la differenza tra heapq e PriorityQueue in python?
- 19. Qual è la differenza tra random.normalvariate() e random.gauss() in python?
- 20. qual è la differenza tra i comandi C, cc e S in vim
- 21. Qual è la differenza tra i comandi s, c e r in vi/vim?
- 22. Qual è la differenza tra i comandi della finestra mobile: corro, costruire e creare
- 23. qual è la differenza tra:.! e: r !?
- 24. Qual è la differenza tra `##` e `hashCode`?
- 25. Qual è la differenza tra .ToString() e + ""
- 26. Qual è la differenza tra ("") e (null)
- 27. Qual è la differenza tra = e: =
- 28. Qual è la differenza tra Verilog! e ~?
- 29. Qual è la differenza tra? : e ||
- 30. qual è la differenza tra [[], []] e [[]] * 2
come fa il runpider a prendere le sue impostazioni allora? – hAcKnRoCk
@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