Scrapy源码(2)——爬虫开始的地方

Scrapy运行命令

一般来说,运行Scrapy项目的写法有,(这里不考虑从脚本运行Scrapy)

但是更好的写法是,新建一个Python文件,如下,(便于调试)

很容易就发现,Scrapy运行文件是文件里面的函数,下面学习下这个函数在做什么。

分析源码

寻找 配置文件,argv直接取sys.argv

set EDITOR from environment if available

读取设置文件,导入项目,调用函数,此处为文件夹下的文件:

project.py

函数如下:

conf.py

如注释所说,初始化环境,循环递归找到用户项目中的配置文件,并且将其设置到环境变量中。然后修改Python路径,确保能找到项目模块。

project.py

至此,该函数结束,如函数名字一样,最后返回项目配置,到此为止,接着往下看

导入相应的module爬虫模块(inside_project)

执行环境是否在项目中,主要检查scrapy.cfg配置文件是否存在,读取commands文件夹,把所有的命令类转换为的字典

根据命令名称找到对应的命令实例,设置项目配置和级别为command,添加解析规则,解析命令参数,并交由Scrapy命令实例处理。

最后,看看下面这段代码。

初始化实例,将对应的命令执行,这里是

看到这,想起了文档中的介绍 Run Scrapy from a script

所以Scrapy爬虫运行都有用使用到,想要深入了解可以去看看源码 scrapy/scrapy/crawler.py

最后,附上Scrapy的路径图

总结

简单来说,有这么几步:

读取配置文件,应用到爬虫中

把所有的命令类转换名称与实例字典

初始化实例,运行爬虫

(看的头疼,好多函数名记不住)

回顾

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180226G1GS4L00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券