如何顺利重启scrapy-redis蜘蛛?

时间:2016-05-30 05:56:02

标签: scrapy web-crawler resume

我曾用scrapy-redis编写了一个简单的蜘蛛来制作分布式蜘蛛。我发现当我开始两只蜘蛛然后全部杀死它们时。 redis队列只留下'dupfilter'队列。当我重新启动两只蜘蛛时,它们根本不起作用。那么如果蜘蛛意外死亡或坠毁,如何重新启动?

1 个答案:

答案 0 :(得分:1)

如果您将设置SCHEDULER_PERSIST设置为False,则在蜘蛛完成时将清除dupefilter。

然而,如果蜘蛛被杀死则不会是这种情况(即:按两次Ctrl + C)。

您可以为蜘蛛添加标记以清除dupefilter(甚至是队列),例如:

if self.clear_all:
    self.crawler.engine.slot.scheduler.df.clear()
    self.crawler.engine.slot.scheduler.queue.clear()