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的路径图
总结
简单来说,有这么几步:
读取配置文件,应用到爬虫中
把所有的命令类转换名称与实例字典
初始化实例,运行爬虫
(看的头疼,好多函数名记不住)
回顾
领取专属 10元无门槛券
私享最新 技术干货