美文网首页
在命令行中给 Spider 传递参数

在命令行中给 Spider 传递参数

作者: Traim | 来源:发表于2016-12-14 16:22 被阅读930次

    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)

    相关文章

      网友评论

          本文标题:在命令行中给 Spider 传递参数

          本文链接:https://www.haomeiwen.com/subject/gggimttx.html