我们是否可以选择同时“独立”运行多个蜘蛛?

问题描述 投票:0回答:1

这个问题已经被问过多次,但我没有看到任何可靠的答案。几年前,也有人问过这个问题:https://github.com/scrapy/scrapy/issues/3216。我目前从 django 数据库中连续动态地运行 300 多个蜘蛛。我还尝试使用

CrawlerProcess
同时运行蜘蛛,但我更喜欢使用基于
CrawlerRunner
的结果顺序运行,尤其是在使用
chrome-driver
构建高度结构化的动态网站时。

我需要一些东西来以非阻塞过程独立或异步运行每个蜘蛛?使用 scrapy 常见做法(https://docs.scrapy.org/en/latest/topics/practices.html.)运行成百上千个蜘蛛需要花费大量时间。您有什么可以建议的选择吗?

这是我的初始代码:

# Run spiders sequentially
configure_logging()
settings = get_project_settings()
runner = CrawlerRunner(settings)


@defer.inlineCallbacks
def crawl():

    for results in match_spiders(Model.objects.all(), settings):
        for spider, url in results:
            yield runner.crawl(spider, url=url)
            print(f'Done running: {spider.__name__}')

    reactor.stop()
python scrapy
1个回答
0
投票

我还希望能够并行使用多个间谍程序。有更新吗?

© www.soinside.com 2019 - 2024. All rights reserved.