有的时候需要在scrapy工程里面运行多个爬虫,试用了网上两种方法。
运行环境:scrapy:2.3.0 + python3.8
第一种:
# coding:utf-8
from scrapy import cmdline
cmdline.execute("scrapy crawl spider1".split())
cmdline.execute("scrapy crawl spider2".split())
无效,只能运行第一个。
第二种:
https://www.cnblogs.com/rwxwsblog/p/4578764.html
以上是链接,使用的self.crawler_process和自定义命令的方法,亲测有效,但是这些爬虫是同步运行的,数量多延迟高的情况下,链接会发生超时重置的情况。
https://docs.scrapy.org/en/master/topics/practices.html#run-scrapy-from-a-script在官方文档看到可以通过链接延迟项依次运行所有爬虫,这种方式或许可以避免以上问题。