Scrapy Spiderでユーザー定義の引数を渡す方法 質問する

Scrapy Spiderでユーザー定義の引数を渡す方法 質問する

ユーザー定義の引数をスクレイピーのスパイダーに渡そうとしています。その方法についてアドバイスをいただける方はいらっしゃいますか?

どこかでパラメータについて読んだのです-aが、どのように使用すればいいのか分かりません。

ベストアンサー1

crawlスパイダー引数は、オプションを使用してコマンドに渡されます-a。例:

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

スパイダーは属性として引数にアクセスできます。

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

2013年アップデート: 2番目の引数を追加

2015年アップデート: 文言を調整

2016年アップデート: 新しい基本クラスを使用してスーパークラスを追加します。@Birla に感謝します。

2017年アップデート: Python3のスーパーを使用する

# previously
super(MySpider, self).__init__(**kwargs)  # python2

2018年アップデート:@eLRuLLが指摘しているようにスパイダーは引数を属性としてアクセスすることができる

おすすめ記事