上一篇教程中讲到crawl命令最终会执行CrawlProcess的crawl和start方法。这一篇对CrawlProcess的源码进行详细分析,来了解一下是如何进行爬取任务的。
先看一下CrawlProcess的构造函数:
scrapy/crawler.py:
可以看到这个模块一共有3个类:Crawler,CrawlerRunner,CrawlerProcess.
Crawler代表了一种爬取任务,里面使用一种spider,CrawlerProcess可以控制多个Crawler同时进行多种爬取任务。
CrawlerRunner是CrawlerProcess的父类,CrawlerProcess通过实现start方法来启动一个Twisted的reactor,并控制shutdown信号,比如crtl-C,它还配置顶层的logging模块。
下面结合源码对源码进行注释解析:
</
本文深入分析了Scrapy的CrawlProcess源码,探讨了Crawler、CrawlerRunner和CrawlerProcess之间的关系。Crawler代表单个爬取任务,CrawlerProcess能管理多个任务并启动Twisted reactor。CrawlerRunner作为CrawlerProcess的父类,负责处理shutdown信号和配置logging。文章通过注释源码的方式解释了crawl和start方法的实现。
订阅专栏 解锁全文
1091

被折叠的 条评论
为什么被折叠?



