当我们使用:
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
那我们就执行了看看,于是乎,出现了如下:
好像是说给我们创建了个文件,我们打开我们的项目,发现果然:
我们打开文件看一下:
恍然大悟,原来这个命令是给我们创建蜘蛛模板的,example是蜘蛛名,example.com是start_urls,明白之后根据项目创建一个有针对性的,既然是爬淘宝,那我们就输入 :
scrapy genspider taobao taobao.com
但当你这样输入的时候,你发现不好使了:
原来,名称不能和项目相同,那我们换一种说法:
scrapy genspider TaoBaoSpider taobao.com
这样就ok了,项目里又多了一个蜘蛛
命令挺方便,能让我们少写很多代码!进一步看这一个命令,我们输入:
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命令就是用来给你创建蜘蛛模板的,非常方便,别忘记以后用上这个命令!