通过scrapyd

问题描述

我的小蜘蛛使用硒爬行,并使用scrapyd本地部署。

我的小蜘蛛:

    class BotSpider(scrapy.Spider):
        name = "bot"
    
        @classmethod
        def from_crawler(cls,crawler,*args,**kwargs):
            spider = super().from_crawler(crawler,**kwargs)
            crawler.signals.connect(spider.spider_closed,signal=signals.spider_closed)
            crawler.signals.connect(spider.spider_opened,signal=signals.spider_opened)
            return spider
    
        def spider_opened(self,spider):
            LOGGER.setLevel(logging.WARNING)
            urllibLogger.setLevel(logging.WARNING)
    
            options = Options()
            # options.headless = True
            self.driver = webdriver.Chrome(
                ChromeDriverManager().install(),chrome_options=options
            )
    
            self.solver = TwoCaptcha(**config)
    
        def spider_closed(self,spider):
            if self.driver:
                self.driver.quit()
                self.driver = None

        # spider code here
        def start_requests(self):
            self.driver.get(url)

问题 问题是当我使用以下命令取消scrapyd中的正在运行的作业时:

curl http://localhost:6800/cancel.json -d project=bot -d job=cc59d02407a211ebb78e005056c00008

它返回确定,但作业仍在运行:

{"node_name": "My-Laptop","status": "ok","prevstate": "running"}

enter image description here

使用scrapyd取消作业时:

  • 作业过程终止。 (当使用进程ID进行检查时)
  • 作业停留在运行列表中。
  • 硒化铬窗口停止浏览并保持打开状态

如何将作业从运行清单移动到完成清单?或者至少将其从运行列表中删除?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)