爬虫日记(75):Scrapy的Settings源码分析

Posted caimouse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫日记(75):Scrapy的Settings源码分析相关的知识,希望对你有一定的参考价值。

Scrapy有一个比较大的设计思路,就是任何模块都是可配置的,这样就会让系统更加灵活,也可以简化系统的复杂程度。所以需要设计一个比较复杂的Settings类,保存所有配置的参数,灵活地读取和更新。

 

先来看一下Settings类继承图:

从代码里使用来看,Settings类使用像字典类,但是它不是基于字典类来实现的,这是为什么呢?这是因为它不仅按字典的方式来使用,并且还要求有优先级别的,由于字典不存在优先级别,因此不能继承字典类,改为继承MutableMapping类。这样的设计方式也是值得我们来学习的。

 

这两个类的实现代码都是在目录scrapy\\settings里,并且写在包初始化文件__init__.py里面。下面来看一下BaseSettings类定义:

class BaseSettings(Mutable

以上是关于爬虫日记(75):Scrapy的Settings源码分析的主要内容,如果未能解决你的问题,请参考以下文章

爬虫日记(88):Scrapy的Downloader类

爬虫日记(74):Scrapy项目配置参数源码分析(二)

爬虫日记(63):Scrapy的设置参数-日志

爬虫日记(74):Scrapy项目配置参数源码分析

爬虫日记(84):Scrapy的Crawler类

爬虫日记(73):Scrapy程序运行入口点分析