0
有沒有什麼辦法讓我在蜘蛛中擁有持久請求元數據? request.meta
只持續到下一次的回調,在那裏我必須做這樣的事情:Scrapy中的持久請求元數據
def method1(self, response):
request = Request(url, callback=self.method2)
request.meta['persist'] = ...
yield request
def method2(self, response):
...
request = Request(url, callback=self.method3)
request.meta['persist'] = response.meta['persist']
yield request
我也做了裝飾,做這個,但我真的希望有一個更清潔的解決方案:
def persist_meta(callback):
def inner(self, *args, **kwargs):
for result in callback(self, *args, **kwargs):
if isinstance(result, Request):
response = args[0]
persist = response.meta.get('persist', {})
persist.update(result.meta.get('persist', {})
result.meta['persist'] = persist
yield result
return inner
任何幫助表示讚賞。