前面学习过了引擎类,明白整个引擎的工作过程,在引擎里要调用调度管理类,这样才能够把请求下载进行去重,或者优先下载等功能实现。现在我们就来分析这个类的实现,以便完全理解调度管理类的相关细节。
这个类的创建过程如下图:
要创建调度管理类,它需要从默认设置参数里获得类的名称:
SCHEDULER = 'scrapy.core.scheduler.Scheduler'
然后根据这个参数名称,就可以从目录里找到对应的python包,再找到对应的调度类Scheduler,最后就可以通过上面的语句进行构造,创建Scheduler类对象scheduler。接着下来就是调用Scheduler类的函数open,就完成调度类的初始化工作。
首先来分析from_crawler函数,它的代码如下: