模块
- 模块:scrapy.settings
- 类:SettingsAttributes BaseSettings Settings
SettingsAttributes
- 表示一个基本的属性值,该值被赋予了优先级,使用set方法时,只有传入优先级高于单前属性值的优先级时才会被赋值。
BaseSettings
关键attributes属性,是一个字典,存储每个name下的属性值(SettingsAttributes或BaseSettings),重写了以下方法,用于支持BaseSettings的各种操作,访问BaseSettings对象就好像访问attributes字典各个属性值一样。
- __getitem__
- __contains__ ( 支持 in self判断)
- __delitem__
- __iter__
- __len__
关键frozen变量,对BaseSettings的修改操作进行锁定,被锁定的对象进行修改的话会抛出异常,提供了freeze方法,使得锁定生效。
关键操作方法,作为外部各种操作的接口
- get特定类型数据
- set \ setdict \ setmodule方法
- update 增加dict value支持
- delete
Settings
- 继承自BaseSettings,初始化时加载默认配置,并且支持了配置文件中的dict属性,作为BaseSettings。使得scrapy加载配置时支持两层嵌套:
- key = value and value != dict (value = string|int|…)
- key = value and values = dict (dictvalue = string|int|…)
心得
- 这个模块简直可以剥离出来,搞成一个通用的settings组件自己用。。
- 支持优先级覆盖
- 支持字典嵌套
- 支持配置锁定
- 通用settings对象方法
souce code
init.py”>https://github.com/chenxilinsidney/scrapy/blob/master/scrapy/settings/init.py