如何使scrapy使用两个队列来管理URL?

时间:2018-08-23 03:01:28

标签: python redis scrapy priority-queue

我想通过scrapy框架和scrapy-redis lib创建一个集中的分布式爬虫。 在这里,我需要两个队列,一个称为Priority_queue,另一个是urls_queue。两个队列都根据得分对已排序的请求进行维护。抓取工具始终会从prior_queue接收第一个请求,直到priorate_queue为空,然后将某些请求从urls_queue移至prior_queue。产生的所有请求都被推送到urls_queue中。 有了这样的要求,谁能给我一些解决方案或想法,如何实现呢?我应该修改哪些刮板模块以满足我的要求?

1 个答案:

答案 0 :(得分:1)

Scrapy有一个队列。您可以了解有关队列排序here的更多信息。 为了实现您的目标,您仍然可以使用请求优先级。请参阅请求definition

priority_request = Request(url="http://www.example.com", priority=100)
yield priority_request
request = Request(url="http://www.example.com")
yield request