一尘不染

如何在Scrapy Spider中传递用户定义的参数

scrapy

会做到的。我试图将用户定义的参数传递给scrapy的Spider。谁能建议该怎么做?

我在-a某处读到一个参数,但不知道如何使用它。


阅读 646

收藏
2020-04-08

共1个答案

一尘不染

Spider参数crawl使用-a选项在命令中传递。例如:

scrapy crawl myspider -a category=electronics -a domain=system

Spider程序可以将参数作为属性访问:

class MySpider(scrapy.Spider):
    name = 'myspider'

    def __init__(self, category='', **kwargs):
        self.start_urls = [f'http://www.example.com/{category}']  # py36
        super().__init__(**kwargs)  # python3

    def parse(self, response)
        self.log(self.domain)  # system

摘自Scrapy文档:http ://doc.scrapy.org/en/latest/topics/spiders.html#spider-arguments

# previously
super(MySpider, self).__init__(**kwargs)  # python2
2020-04-08