必须使用scrapy genspider命令生成爬虫文件,它自动创建spiders目录下的Python文件并填充name、allowed_domains、start_urls等属性;支持指定模板如basic、crawl、csvfeed等,且-t参数须紧贴genspider;若不在项目目录下执行会报“No active project”错误,需确保存在scrapy.cfg文件。

要在Scrapy项目中快速生成一个具备基础结构的爬虫文件,必须使用genspider命令,它会自动创建spiders目录下的Python文件,并填充name、allowed_domains、start_urls等关键属性,省去手动编写模板代码的重复劳动。
基础用法:生成默认basic模板爬虫
进入已初始化的Scrapy项目根目录(即包含scrapy.cfg的目录),执行:
scrapy genspider itcast itcast.cn
该命令会在spiders/子目录下生成itcast.py文件,其中allowed_domains被设为['itcast.cn'],start_urls默认为['http://itcast.cn']。注意:域名参数不能带http://前缀,否则allowed_domains会出错。
这一步操作起来很简单,直接把域名填对就行,但填错会导致后续请求被过滤掉。
指定模板生成爬虫
Scrapy内置多种爬虫模板,可通过-l参数查看全部可用模板:
scrapy genspider -l
常见模板有basic、crawl、csvfeed、xmlfeed。其中crawl模板自带Rule规则系统,适合需要自动提取页面内链接并递归抓取的场景。
方法一:使用crawl模板生成知乎爬虫
scrapy genspider -t crawl zhihu zhihu.com
方法二:使用csvfeed模板处理CSV数据源
scrapy genspider -t csvfeed csvspider example.com
【-t参数必须紧贴genspider,中间不能有空格】,写成scrapy genspider - t crawl会报错。
在项目外误用genspider的应对
如果当前不在Scrapy项目目录下执行genspider,命令会报错:“No active project”。此时不要强行cd到任意目录重试——必须先确认scrapy.cfg文件存在。
第一步:检查当前路径是否含scrapy.cfg
第二步:若无,需先用scrapy startproject myproj创建项目
第三步:cd myproj → scrapy genspider demo demo.com
没有scrapy.cfg就无法识别为项目环境,所有项目级命令都会失效。


















