scrapy源码剖析(scrapy.settings)

模块

  • 模块:scrapy.settings
  • 类:SettingsAttributes BaseSettings Settings

SettingsAttributes

  1. 表示一个基本的属性值,该值被赋予了优先级,使用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加载配置时支持两层嵌套:
    1. key = value and value != dict (value = string|int|…)
    2. 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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值