CrawlerRunner不等待吗?

时间:2019-06-18 00:31:50

标签: python scrapy web-crawler

我试图使用以下函数来等待搜寻器完成并返回所有结果。但是,在搜寻器仍在运行时,此函数始终在被调用时立即返回。我在这里想念什么? join()不应该等待吗?

def spider_results():
    runner = CrawlerRunner(get_project_settings())
    results = []

    def crawler_results(signal, sender, item, response, spider):
        results.append(item)

    dispatcher.connect(crawler_results, signal=signals.item_passed)
    runner.crawl(QuotesSpider)
    runner.join()
    return results

1 个答案:

答案 0 :(得分:0)

根据抓取的文档(common practices section) 在这种情况下,建议使用CrawlerProcess类。