【问题标题】:How to restart scrapy-redis spiders smoothly?如何顺利重启scrapy-redis蜘蛛?
【发布时间】:2016-09-27 20:39:23
【问题描述】:

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

【问题讨论】:

    标签: scrapy web-crawler resume


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 2017-07-09
      • 2015-05-13
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 2018-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多