我目前正在从事一个项目,涉及从各种(约50个网站)爬行数据。有一个网站有多个页面我们需要抓取,但这个网站不允许多个会话。(网站已通过身份验证)。
有没有办法暂停一个爬虫,直到另一个蜘蛛完成?
我在过去的一天里一直在研究这个。我发现了一些可以暂停的方法,但似乎这些方法只对整个CrawlerProcess有效。
发布于 2019-06-10 05:08:16
解决方案实际上相当简单。每只蜘蛛都有一个唯一的识别码。在设置CrawlerProcess时,程序检查唯一的代码是否与需要暂停的代码相同,如果是,它会将爬行器实例传递给需要首先运行的爬行器,然后该爬行器将使用self.custom_settings['XX_SPIDER'].crawler.pause()
暂停它,完成后,在closed()
函数中将使用self.custom_settings['XX_SPIDER'].crawler.unpause()
取消暂停它
https://stackoverflow.com/questions/56114106
复制相似问题