在命令行中给 Spider 传递参数
2016-12-14 本文已影响930人
Traim
Sometimes 不能在代码里把任务网址写死,需要动态传参给 spider ,以适应任务需求
-
首先得定义一个 __init__ 函数。用于接收参数
import scrapy class TestSpider(Scrapy.Spider): def __init__(self, arg=None): if arg is None: self.arg = 0 else: self.arg=arg
-
启动的时候需要 -a 参数
# -a NAME=VALUE set spider argument (may be repeated)
scrapy crawl TestSpider -a arg=100
### 另外得注意优先级。同一参数可能会被高优先级覆盖
命令行选项(Command line Options)(最高优先级)
项目设定模块(Project settings module)
命令默认设定模块(Default settings per-command)
全局默认设定(Default global settings) (最低优先级)
[出门右转 Scrapy_Setting](http://scrapy-chs.readthedocs.io/zh_CN/latest/topics/settings.html)