Python Scrapy: Quelle est la différence entre les commandes "runspider" et "crawl"?

quelqu'un Peut m'expliquer la différence entre runspider et analyse les commandes? Quels sont les contextes dans lesquels ils doivent être utilisés?

11
demandé sur Ravi 2016-06-03 09:29:56

3 réponses

Dans la commande:

scrapy crawl [options] <spider>

<spider> est le nom du projet (défini dans settings.py comme BOT_NAME).

Et dans la commande:

scrapy runspider [options] <spider_file>

<spider_file> est le chemin d'accès vers le fichier qui contient l'araignée.

Sinon, les options sont les mêmes:

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

Depuis runspider ne dépend pas de l' BOT_NAME paramètre, en fonction de la façon dont vous personnalisez vos racloirs, vous pourriez trouver runspider plus souple.

1
répondu Ivan Chaer 2017-03-17 20:54:09

La petite explication et la syntaxe:

runspider

Syntaxe: scrapy runspider <spider_file.py>

nécessite un projet: non

exécuter une araignée contenue dans un fichier Python, sans avoir à créer un projet.

Exemple d'utilisation:

$ scrapy runspider myspider.py

analyse

Syntaxe: scrapy crawl <spider>

nécessite un projet: Oui

commencez à ramper en utilisant une araignée avec le nom correspondant.

exemples d'Utilisation:

 $ scrapy crawl myspider
5
répondu Muhammad Usman 2016-09-29 21:48:27

La principale différence est que runspider n'a pas besoin de projet. Qui est, vous pouvez écrire une araignée dans un myspider.py le fichier et l'appel scrapy runspider myspider.py.

crawl commande nécessite un projet pour trouver les paramètres du projet, chargez les araignées disponibles à partir de SPIDER_MODULES paramètres, et rechercher l'Araignée par name.

Si vous avez besoin rapidement d'araignée pour une courte tâche, puis runspider a moins de boilerplate requis.

4
répondu Rolando Max 2016-06-03 12:21:48