问题描述
我的小蜘蛛使用硒爬行,并使用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"}
使用scrapyd取消作业时:
- 作业过程终止。 (当使用进程ID进行检查时)
- 作业停留在运行列表中。
- 硒化铬窗口停止浏览并保持打开状态
如何将作业从运行清单移动到完成清单?或者至少将其从运行列表中删除?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)