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

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

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

两个问题:

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

回答:

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

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)

以上是 如何获取scrapy队列中的请求数? 的全部内容, 来源链接: utcz.com/qa/433142.html

回到顶部