我想向蜘蛛发送参数并获取根据参数命名的输出(json、csv)。
F.e,
$ scrapycrawlspider_name-acategory=category1-asubcategory=subcategory1
我想得到:
category1_subcategory1.json(或csv,没关系)。
我的意思是我需要确切的 json 名称作为蜘蛛的参数。
class MySpider(scrapy.Spider):
name = 'my_spider'
# how can I get to this place ?
customs_settings = {
'FEED_URI' : 'some_name.json'
}
def __init__(self, category, subcategory, *args, **kwargs):
super(MySpider, self).__init__(*args, **kwargs)
self.category = category
self.subcategory = subcategory
最佳答案
您可以从 __init__
的 kwargs
获取这些参数,并在 FEED_URI
中使用,如下所示:
class MySpider(scrapy.Spider):
name = 'my_spider'
custom_settings = {
'FEED_URI' : '%(category)s_%(subcategory)s.json'
}
def __init__(self, *args, **kwargs):
self.category = kwargs.pop('category', '')
self.subcategory = kwargs.pop('subcategory', '')
super(MySpider, self).__init__(*args, **kwargs)
文档:https://doc.scrapy.org/en/latest/topics/feed-exports.html#storage-uri-parameters
关于python - 如何将参数(对于 FEED_URI)传递给 Scrapy 蜘蛛的实例以动态命名输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41871605/