zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

爬虫scrapy 日记 83
2023-09-14 09:10:04 时间

前面学习了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文件里只有三个类,如下图: