Scrapy-在Spider Middleware中访问项目?

时间:2018-08-02 21:23:45

标签: python scrapy web-crawler

因此,我试图避免在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]

0 个答案:

没有答案