scrapy命令:scrapy genspider详解 转

 

当我们使用:
scrapy startproject taobao
命令创建好scrapy蜘蛛后,你是否注意到,下面还有这么一行内容:
F:scrapyTest> scrapy startproject taobao
New Scrapy project 'taobao', using template directory 'D:\Anaconda3\lib\site-
packages\scrapy\templates\project', created in:
    F:scrapyTest	aobao

You can start your first spider with:
    cd taobao
    scrapy genspider example example.com
You can start your first spider with:     cd taobao     scrapy genspider example example.com
 
神马意思呢?翻译过来就是:你可以使用 cd 命令进入taobao这个目录然后执行如下命令:
scrapy genspider example example.com
那我们就执行了看看,于是乎,出现了如下:
scrapy genspider命令详解

好像是说给我们创建了个文件,我们打开我们的项目,发现果然:
scrapy genspider命令详解

我们打开文件看一下:
scrapy genspider命令

恍然大悟,原来这个命令是给我们创建蜘蛛模板的,example是蜘蛛名,example.com是start_urls,明白之后根据项目创建一个有针对性的,既然是爬淘宝,那我们就输入 :
scrapy genspider taobao taobao.com
但当你这样输入的时候,你发现不好使了:
scrapy genspider

原来,名称不能和项目相同,那我们换一种说法:
scrapy genspider TaoBaoSpider taobao.com
这样就ok了,项目里又多了一个蜘蛛
scrapy genspider

命令挺方便,能让我们少写很多代码!进一步看这一个命令,我们输入:
scrapy genspider -h
有以下输出:
scrapy genspider -h

可以看到,scrapy genspider有如下格式:
 scrapy genspider [options] <name> <domain>
<name>和<domain>上面已经使用过![options] 是神马呢,可以看到,也就是可以加如下几个参数:
Options
=======
--help, -h              show this help message and exit
--list, -l              List available templates
--edit, -e              Edit spider after creating it
--dump=TEMPLATE, -d TEMPLATE
                        Dump template to standard output
--template=TEMPLATE, -t TEMPLATE
                        Uses a custom template.
--force                 If the spider already exists, overwrite it with the
                        template
简单的解释以下 -h 的话我们已经用过,也就是展示帮助,那我们来试试 -l:
scrapy genspider -l
F:scrapyTest	aobao>scrapy genspider -l
Available templates:
  basic
  crawl
  csvfeed
  xmlfeed

这里的意思是可用的模板,那也就是说我们可以用上面的模板输出我们的蜘蛛文件,但是要结合下面的参数 -t 一起用,来,试一下:
scrapy genspider -t crawl taobao2 taobao.com
执行之后,你会发现,又给我们创建了一个名为:taobao2的蜘蛛,但是里面的蜘蛛格式是:crawl类型:
scrapy genspider crawl

基本就是这样的用法!
scrapy genspider命令就是用来给你创建蜘蛛模板的,非常方便,别忘记以后用上这个命令!
原文地址:https://www.cnblogs.com/brady-wang/p/11039743.html