流程中主要的颜色框的含义如下 :
    1.红色框是模块或者类。
    2.紫色框是向模块或者类发送的消息,一般为函数调用。
    3.红色框垂直以下的黑色框即为本模块或者对象执行流程的伪代码描述。

    20161127214707665.jpeg

    几个关键的模块和类介绍如下:

    cmdline:命令行执行模块,主要用于配置的获取,并执行相应的ScrapyCommand。

    ScrapyCommand:命令对象,用于执行不同的命令。对于crawl任务,主要是调用CrawlerProcess的crawl和start方法。
    CrawlerProcess:顾名思义,爬取进程,主要用于管理Crawler对象,可以控制多个Crawler对象来同时进行多个不同的爬取任务,并调用Crawler的crawl方法。

    Crawler:爬取对象,用来控制一个爬虫的执行,里面会通过一个执行引擎engine对象来控制spider从打开到启动等生命周期。

    ExecutionEngine:执行引擎,主要控制整个调度过程,通过twisted的task.LoopingCall来不断的产生爬取任务。