我目前正在从事一个涉及从各种(大约50个网站)抓取数据的项目。有一个网站有多个页面需要我们抓取,但该网站不允许多个会话。 (该网站已通过身份验证)。
有没有办法暂停一只蜘蛛直到另一只蜘蛛完成?
过去的一天,我一直在对此进行研究。我找到了一些可以暂停的方法,但似乎这些方法仅适用于整个CrawlerProcess。
答案 0 :(得分:0)
该解决方案实际上相当简单。每个蜘蛛都有唯一的识别码。设置CrawlerProcess时,程序将检查唯一代码是否与需要暂停的唯一代码相同,如果是,则将Spider实例传递给需要首先运行的Spider,然后将其以{{1 }},并在完成后,在self.custom_settings['XX_SPIDER'].crawler.pause()
函数中,将其与closed()
取消暂停