我在日志中收到此消息:
2014-01-16 12:41:45+0100 [mybot] DEBUG: Filtered duplicate request: <GET https://mydomain/someurl> - no more duplicates will be shown (see DUPEFILTER_CLASS)
使用Request()请求url,并且它在第一次请求时表示它是重复的。我不知道是什么原因造成的。我该怎么做才能调试这个?如何打印它正在过滤的所有重复网址?
答案 0 :(得分:0)
您可能需要创建自己的DupeFilter
from scrapy.dupefilter import RFPDupeFilter
class VerboseRFPDupeFilter(RFPDupeFilter):
def log(self, request, spider):
fmt = "Filtered duplicate request: %(request)s"
log.msg(format=fmt, request=request, level=log.DEBUG, spider=spider)
并将DUPEFILTER_CLASS
设置为此新类(http://doc.scrapy.org/en/latest/topics/settings.html#dupefilter-class)
答案 1 :(得分:0)
使用curl -v URL
尝试确切网址,看看标题是否包含301或302.或者您可以尝试scrapy shell URL
。
我看到一些网站在参数不是相同的顺序或预期的字母大小写时重定向到同一页面。在比较两个请求对象时,Scrapy不考虑参数的顺序或字母大小写。