【问题标题】:Scrapy Running multiple spiders from one fileScrapy 从一个文件运行多个蜘蛛
【发布时间】:2021-08-21 14:14:37
【问题描述】:

我制作了 1 个包含 2 个蜘蛛/类的文件。第二个蜘蛛使用第一个蜘蛛的一些数据。但它似乎不起作用。这是我启动和启动蜘蛛的方法

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

你有什么建议

【问题讨论】:

  • 欢迎您!请先考虑这个article。没有足够的上下文来说明任何事情。

标签: python html css web-scraping scrapy


【解决方案1】:

您的代码将同时运行 2 个蜘蛛。
运行蜘蛛sequentially(完成Zoopy1后启动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 个蜘蛛的逻辑合并到单个蜘蛛类中,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多