因此,我试图避免在scrapy中抓取重复的链接,而我在蜘蛛中创建了一个名为item的字段:
item['url_hash'] = 'someUniquekeyHashHere'
所有已爬网的链接都存储在一个具有相同url_hash
字段的mongo数据库中。大致:
if item[url_hash] in MongoDB:
raise IgnoreRequest()
我想创建一个SpiderMiddleware
,并检查数据库以查看给定的url_hash
是否已经存在。但是,如何访问中间件内部的item
?我看着process_spider_output(response, result,spider),看到了以下参数:
response(响应对象)–从蜘蛛生成此输出的响应
结果(Request,dict或 Item对象的迭代)–蜘蛛返回的结果
spider(蜘蛛对象)–正在处理其结果的蜘蛛
但是,我只是从结果中得到了一个Request对象的可迭代对象。如何获得商品对象本身,即可以在此处访问item['url_hash]
?