Scrapy:通过cmdLine从同一个python进程运行多个spider失败

2024-10-04 08:20:40 发布

您现在位置:Python中文网/ 问答频道 /正文

代码如下:

if __name__ == '__main__':
    cmdline.execute("scrapy crawl spider_a -L INFO".split())
    cmdline.execute("scrapy crawl spider_b -L INFO".split())

我打算在一个scrapy项目下从同一个主门户运行多个spider,但结果发现只有第一个spider成功运行,而第二个spider似乎被忽略了。有什么建议吗?在


Tags: 项目代码nameinfoexecuteif门户main
2条回答

从垃圾文件:https://doc.scrapy.org/en/latest/topics/practices.html#running-multiple-spiders-in-the-same-process

import scrapy
from scrapy.crawler import CrawlerProcess

from .spiders import Spider1, Spider2

process = CrawlerProcess()
process.crawl(Crawler1)
process.crawl(Crawler2)
process.start() # the script will block here until all crawling jobs are finished

编辑:如果希望两个一个地运行多个spider,可以执行以下操作:

^{pr2}$

虽然没有测试所有这些,让我知道它是否有效!在

就这么做吧

import subprocess

subprocess.call('for spider in spider_a spider_b; do scrapy crawl $spider -L INFO; done', shell=True)

相关问题 更多 >