前言
很多朋友在使用scrapy编写爬虫的时候,都能感受到这个框架的在定制性方面的强大。我们完成一个爬虫只需要定义好Spider抽取规则即可。即使再复杂一点的需求,我们也可以通过pipeline来控制爬虫的输出,middleware来控制下载中的请求定制。可是大家有没有想过scrapy是如何将我们的初始种子url一步步的下载、解析、加入新队列,周而复始的运行呢?
这篇文章我来带着大家通过阅读文档,源码,来一步步的理清我们的思路。
阅读方法
直接阅读源码,往往会给人一头雾水的感觉,如果脑中没有一定架构概念的话,很容易陷入到代码的汪洋中。这里我们通过三个步骤来阅读他的源码:
下面开始按照步骤一步一步的来。
scrapy的官方文档
scrapy的文档中内容很多,官网左侧的导航栏分为五个主题:
- First steps。不用说,这部分大家肯定学写爬虫时候都看过,主要是将安装和编写第一个爬虫
- Basic concepts。这一部分主要是scrapy的各个组件,包括命令行(Command line tool)