如何将变量传递给 Scrapy 中的 parse_item 方法?
How to pass variable to parse_item method in Scrapy?
我正在尝试将变量 (sku) 传递给 Scrapy 中的 parse_item 方法。这导致:
TypeError: init() got an unexpected keyword argument 'sku'
我的代码:
def start_requests(self):
for sku in self.SKUs:
url = 'https://www.test' + sku
if validators.url(url):
yield scrapy.Request(
url=url,
sku=sku,
callback=self.parse_item,
)
else:
print("Invalid URL ", format(url))
def parse_item(self, response):
shop['sku'] = self.sku
如何将变量sku传递给parse_item方法?
您需要使用 cb_kwargs
参数(或旧 Scrapy 版本中的 meta
):
def start_requests(self):
for sku in self.SKUs:
url = 'https://www.test' + sku
if validators.url(url):
yield scrapy.Request(
url=url,
cb_kwargs={
'sku': sku,
},
callback=self.parse_item,
)
else:
print("Invalid URL ", format(url))
def parse_item(self, response, sku):
shop['sku'] = sku
我正在尝试将变量 (sku) 传递给 Scrapy 中的 parse_item 方法。这导致:
TypeError: init() got an unexpected keyword argument 'sku'
我的代码:
def start_requests(self):
for sku in self.SKUs:
url = 'https://www.test' + sku
if validators.url(url):
yield scrapy.Request(
url=url,
sku=sku,
callback=self.parse_item,
)
else:
print("Invalid URL ", format(url))
def parse_item(self, response):
shop['sku'] = self.sku
如何将变量sku传递给parse_item方法?
您需要使用 cb_kwargs
参数(或旧 Scrapy 版本中的 meta
):
def start_requests(self):
for sku in self.SKUs:
url = 'https://www.test' + sku
if validators.url(url):
yield scrapy.Request(
url=url,
cb_kwargs={
'sku': sku,
},
callback=self.parse_item,
)
else:
print("Invalid URL ", format(url))
def parse_item(self, response, sku):
shop['sku'] = sku