ユーザー定義の引数をスクレイピーのスパイダーに渡そうとしています。その方法についてアドバイスをいただける方はいらっしゃいますか?
どこかでパラメータについて読んだのです-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が指摘しているようにスパイダーは引数を属性としてアクセスすることができる