从一个文件中抓取 运行 多个蜘蛛

Scrapy Running multiple spiders from one file

我用 2 个 spiders/classes 制作了 1 个文件。第二个蜘蛛使用了第一个蜘蛛的一些数据。但它似乎不起作用。这是我启动和启动蜘蛛所做的工作

process=CrawlerProcess()
process.crawl(Zoopy1)
process.crawl(Zoopy2)
process.start()

你有什么建议

您的代码将同时 运行 2 个蜘蛛。
运行蜘蛛sequentiallyZoopy1完成后开始Zoopy2)可以用@defer.inlineCallbacks实现:

from twisted.internet import reactor, defer
from scrapy.crawler import CrawlerRunner
from scrapy.utils.log import configure_logging
...

configure_logging()
runner = CrawlerRunner()

@defer.inlineCallbacks
def crawl():
    yield runner.crawl(Zoopy1)
    yield runner.crawl(Zoopy2)
    reactor.stop()

crawl()
reactor.run()

替代选项(如果它适合您的任务)- 将逻辑从 2 个蜘蛛合并到单个蜘蛛 Class,