小编典典

如何获取scrapy队列中的请求数?

scrapy

scrapy用来抓取一些网站。如何获取队列中的请求数?

我查看了scrapy源代码,发现scrapy.core.scheduler.Scheduler可能导致我的答案。

两个问题:

  1. 如何访问我的Spider类中的调度程序?
  2. 在调度程序类中,self.dqsself.mqs是什么意思?

阅读 1256

收藏
2020-04-10

共1个答案

小编典典

这花了我一段时间才能弄清楚,但这是我使用的:

self.crawler.engine.slot.scheduler

那是调度程序的实例。然后,你可以调用__len__()它的方法,或者如果你只需要对等待的请求为true / false,请执行以下操作:

self.crawler.engine.scheduler_cls.has_pending_requests(self.crawler.engine.slot.scheduler)

请注意,即使队列为空,仍然可能会有正在运行的请求。要检查当前正在运行多少个请求,请使用:

len(self.crawler.engine.slot.inprogress)
2020-04-10