前面写了一篇起步的跟着scrapy文档学爬虫(1)了,隔了好久才又过来需更了。
1. 命令行工具
scrapy是通过scrapy命令行来进行控制的,这里我们称之为“Scrapy tool”来区别子命令。对于子命令,我们直接称之为“commands”或“Scrapy commands”。
出于不同的需求,scrapy tool提供了许多命令,每条命令都接受一系列不同的参数和选项。
2. 配置设置
scrapy会在以下路径中查找 ini格式的scrapy.cfg参数配置文件:
1. /etc/scrapy.cfg 或 c:\scrapy\scrapy.cfg (系统层面)
2. ~/.config/scrapy.cfg($XDG_CONFIG_HOME) 和 ~/.scrapy.cfg ($HOME)作为全局配置(用户层面)
3. scrapy.cg 内置在当前scrapy项目的根路径下(项目层面)。
这些文件里的设置会按以下顺序合并:用户自定义优先级高于系统层面配置(即2高于1),项目层面会覆盖其它所有配置(即3高于1和2)。
* 这里提到的覆盖是指同一个条目在多个文件中配置冲突了,会按照如此优先级进行舍取,而非覆盖所有。
scrapy还可以通过一些环节变量进行配置,例如:
- SCRAPY_SETTINGS_MODULE
- SCRAPY_PROJECT
- SCRAPY_PYTHON_SHELL
3. 默认的scrapy项目结构
scrapy的默认结构如下:
├── scrapy.cfg
└── tutorial
├── __init__.py
├── items.py
├── middlewares.py
├── pipelines.py
├── __pycache__
├── settings.py
└── spiders
├── __init__.py
└── __pycache__
└── spider1.py
└── spider2.py
...
scrapy.cfg就是上面提到的项目级的配置文件。该文件中包含Python模块名的字段,定义了项目的设置,例如:
[settings]
default = myproject.settings