我有类似的问题,下面的个人有。我试图使用元属性传递一个项目。我看到输出的项目数量正确,但它们是单个项目的重复项目。有人可以帮忙吗?我在对前一个人的帖子的回复中猜测,这应该是一个明显的解决办法。Scrapy没有通过元属性传递正确的项目
https://github.com/scrapy/scrapy/issues/1257
def parse(self, response):
# some treatment
# a loop
request = scrapy.Request(url=<calculated_url>, callback=parseChapter)
request.meta['item'] = # a dictionary containing some data of the just parsed page
yield request
def parseChapter(self, response):
# some treatment
# a loop
request = scrapy.Request(url=<calculated_url>, callback=parseCategory)
request.meta['item'] = # a dictionary containing some data of the just parsed page
# print request.meta['item'] is good and different in every iteration
yield request
def parseCategory(self, response):
# print response.meta['item'] is not good because it displays the same value many times
# for every new call of parseChapter, meta['item'] received is always the same
# some treatment
请编辑您的问题,并添加完整的代码和错误消息。否则,猜测是什么导致了你的问题是一个纯粹的问题。 –
正确的答案是改变request.meta ['item'] = item to request.meta ['item'] = item.copy()(除非有人更有见识地不同意) –