爬虫日记(83):Scrapy的CrawlerProcess类

Posted caimouse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫日记(83):Scrapy的CrawlerProcess类相关的知识,希望对你有一定的参考价值。

前面学习了Twisted的基础知识了,接着回过头来再看整个Scrapy程序,在执行 Scrapy 命令时,主要经过以下几步:

1)调用 cmdline.py 的 execute 方法

2)找到对应的命令实例解析命令行

3)构建 CrawlerProcess 实例,调用 crawl 和 start 方法开始抓取

而 crawl 方法最终是调用了 Cralwer 实例的 crawl,这个方法最终把控制权交给了Engine,而 start 方法注册好协程池,就开始异步调度执行了。

在 cmdline.py有execute方法里进行如下创建:

调用时CrawlerProcess(settings)来创建一个对象保存到cmd.crawler_process变量,这个CrawlerProcess对象才是我们需要关注的对象,因为它接管了execute的执行权,而要理解CrawlerProcess对象,就得理解CrawlerProcess类,它是在文件scrapy\\crawler.py里,crawler.py文件里只有三个类,如下图:

以上是关于爬虫日记(83):Scrapy的CrawlerProcess类的主要内容,如果未能解决你的问题,请参考以下文章

爬虫日记(83):Scrapy的CrawlerProcess类(三)

爬虫日记(83):Scrapy的CrawlerProcess类(二)

爬虫日记(63):Scrapy的设置参数-日志

爬虫日记(73):Scrapy程序运行入口点分析

爬虫日记(75):Scrapy的Settings源码分析

爬虫日记(74):Scrapy项目配置参数源码分析(二)