Scrapy源码学习(二)

本文介绍了Scrapy中ScrapyCommand类的基本属性和方法,包括requires_project、crawler_process等属性,以及__init__、set_crawler等方法。该类作为Scrapy所有命令的基础,定义了通用的功能和行为。

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

一、几个属性

ScrapyCommand类有几个全局属性:

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

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

default_settings,默认的配置;

exitcode,退出状态。

另外,还有

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

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

二、几个成员函数

__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),执行一个具体的命令,具体执行内容由具体的命令实现模块覆盖,执行某一具体命令的入口。

三、总结

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

转载于:https://www.cnblogs.com/stGeekpower/p/3325728.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值