在CrawlerProcess中暂停单个蜘蛛

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (161)

我目前正在进行一个项目,涉及从不同的(大约50个网站)的数据抓取。有一个网站,有多个页面,我们需要刮,但这个网站不允许多个会话。(网站经过认证)。

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

I've been researching this for the past day. I found some ways you can pause, but it seems these are only working for the whole CrawlerProcess.

提问于
用户回答回答于

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

扫码关注云+社区

领取腾讯云代金券