最近需要爬取大概10个网站的数据,如果创建10个项目的话,pipelines文件和items文件还有middleware,settings文件都是可以共用的。没必要每个项目都写一遍。
所以用scrapy只创建一个项目,创建多个spider,启动爬虫时只写一个启动脚本就可以全部同时启动。
但是问题出现了,编写完多个spider文件之后,启动时报错。查完网上各种解答方案,找到解决办法。最后会发上参考的文档链接
- pipelines设置
因为多个spider,每个spider爬取到的数据是要存入不同的数据库表中,编写自己的pipelines文件,在settings设置
# Configure item pipelines
# See https://doc.scrapy.org/en/latest/topics/item-pipeline.html
ITEM_PIPELINES = {
'xinwen.pipelines.XinwenPipeline': 300,
'xinwen.pipelines.JingchuPipeline':400,
}
无法运行第二个pipelines文件。
最后在各自的spider文件中,写入如下代码:
custom_settings = {
'ITEM_PIPELINES': {'xinwen.pipelines.XinwenPipeline': 300},
}
可以运行。
2.同时启动spider
在开源中国的大佬文章那里提到的是重写了scrap