Scrapy - 如何获取重复的请求引用

Scrapy - How to get duplicate request referer

当我打开 DUPEFILTER_DEBUG 时,我得到:

2016-09-21 01:48:29 [scrapy] DEBUG: Filtered duplicate request: http://www.example.org/example.html>

问题是,我需要知道重复请求的引荐来源网址才能调试代码。如何调试引荐来源网址?

一个选项是基于内置 RFPDupeFilter 过滤器的 自定义过滤器

from scrapy.dupefilters import RFPDupeFilter

class MyDupeFilter(RFPDupeFilter):
    def log(self, request, spider):
        self.logger.debug(request.headers.get("REFERER"), extra={'spider': spider})
        super(MyDupeFilter, self).log(request, spider)

不要忘记将 DUPEFILTER_CLASS setting 设置为指向您的自定义 class。

(未测试)