Scrapy同时启动多个爬虫

一、方法

1、通过CrawlerProcess

"""

from scrapy.crawlerimport CrawlerProcess

from scrapy.utils.projectimport get_project_settings

def run_process_spiders(spider_list=None):

    process = CrawlerProcess(get_project_settings())

    for spider in spider_list:

        process.crawl(spider)

    process.start()

"""

二、参考资料

1、在同一个进程中运行多个蜘蛛(官方,使用中)

https://docs.scrapy.org/en/latest/topics/practices.html#run-from-script

2、scrapy启动多爬虫(简书,测试可用)

https://www.jianshu.com/p/03a68cbacf92

三、思考

1、不使用scrapy-redis的原因

a. 启动后好像是按顺序执行的(即一个个执行爬虫,速度变慢)

b. redis内存吃不消(两个就满了)

c. 服务器重启后等一些意外情况,会导致redis重启,保存的request指纹丢失

d. 即便指纹不丢失,也可能会出现数据丢失的情况

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容