在CrawlerProcess中暂停单个蜘蛛

时间:2019-05-13 14:07:07

标签: python scrapy

我目前正在从事一个涉及从各种(大约50个网站)抓取数据的项目。有一个网站有多个页面需要我们抓取,但该网站不允许多个会话。 (该网站已通过身份验证)。

有没有办法暂停一只蜘蛛直到另一只蜘蛛完成?

过去的一天,我一直在对此进行研究。我找到了一些可以暂停的方法,但似乎这些方法仅适用于整个CrawlerProcess。

1 个答案:

答案 0 :(得分:0)

该解决方案实际上相当简单。每个蜘蛛都有唯一的识别码。设置CrawlerProcess时,程序将检查唯一代码是否与需要暂停的唯一代码相同,如果是,则将Spider实例传递给需要首先运行的Spider,然后将其以{{1 }},并在完成后,在self.custom_settings['XX_SPIDER'].crawler.pause()函数中,将其与closed()取消暂停