
最近想去买一件很多人都追求的商品,但是因为数量不多,所以对于买的人进行排号,根据先来后到的顺序进入店铺挑选商品。看懂前面所讲的话,接下来的Scheduler就很好理解了,它也同样承担着一个给爬虫进行排序的职能,根据一定的顺序然后整理出一份优先级的名单,这么说是不是觉得Scheduler很有意思?接下来我们一起看看Scheduler确定优先级的实例。
开始之前,先讲讲这个:Scrapy-redis提供了下面四种组件,展示给大家看一下
Scheduler(调度程序)
Item Pipeline(数据管道)
Scheduler:
Scrapy中跟“待爬队列”直接相关的就是调度器Scheduler,它负责对新的request进行入列操作(加入Scrapy queue),取出下一个要爬取的request(从Scrapy queue中取出)等操作。它把待爬队列按照优先级建立了一个字典结构,比如:
{
优先级0 : 队列0
优先级1 : 队列1
优先级2 : 队列2
}
Item Pipeline:
引擎将(Spider返回的)爬取到的Item给Item Pipeline,scrapy-redis 的Item Pipeline将爬取到的 Item 存⼊redis的 items queue。
修改过Item Pipeline可以很方便的根据 key 从 items queue 提取item,从⽽实现 items processes集群。
到这里我们就用Scheduler给爬虫定好优先级了,这样获取数据的时候也不会出现混乱的局面。想要爬虫获取数据达到跟小编一样的效果,可以尝试使用Scheduler。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3974/viewspace-2831988/ ,如需转载,请注明出处,否则将追究法律责任。