Scrapy源码学习(二)

上次说到scrapy_home/scrapy/commands包下每一个模块对应了scrapy命令行中的一个命令,他们都继承自command.py模块中ScrapyCommand这个类,此次就来简单看一下ScrapyCommand这个类。scrapy

1、几个属性

ScrapyCommand类有几个全局属性:函数

requires_project,表示该命令是否须要在project中才能执行;ui

crawler_process,CrawlerProcess类的实例,是一个抓取处理器,在一个抓取处理器中能运行多个抓取;命令行

default_settings,默认的配置;code

exitcode,退出状态。继承

另外,还有it

_crawler属性,这个是一次抓取至少须要的一个抓取器;io

settings,用来保存抓取的配置。require

2、几个成员函数

__init__(self),初始化函数;配置

set_crawler(self, crawler),设置抓取器;

crawler(self),建立一个抓取器,并将建立的抓取器用set_crawler函数设置;

syntax、short_desc、long_desc、help,这几个是用来提示命令功能及使用方法的函数,由具体的命令实现模块覆盖;

add_options(self, parser),命令能用的options在这里作出限制;

process_options(self, args, opts),根据传入的options修改本次执行的一些配置;

run(self, args, opts),执行一个具体的命令,具体执行内容由具体的命令实现模块覆盖,执行某一具体命令的入口。

3、总结

这个类是比较简单的,做为scrapy全部命令的基类,该类定义了一些共有的属性,完成了一些共有的功能,另外对各命令的行为作出了一些共有的限制。

相关文章
相关标签/搜索