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. 即便指纹不丢失,也可能会出现数据丢失的情况

你可能感兴趣的:(Scrapy同时启动多个爬虫)