我有一个看起来像这样的抓取工具:
def parse:
.......
........
Yield(Request(url=nextUrl,callback=self.parse2))
def parse2:
.......
........
Yield(Request(url=nextUrl,callback=self.parse3))
def parse3:
.......
........
我想添加一个规则,其中我想忽略一个URL在调用函数parse2时是否已被爬行,但保留了parse3的规则。我仍然在探索requests.seen文件,看看我是否可以操作它。
答案 0 :(得分:2)
您可以在 settings.py 中设置规则。请参阅文档dupefilter-class
默认值:'scrapy.dupefilter.RFPDupeFilter'
用于检测和过滤重复请求的类。
使用scrapy.utils.request.request_fingerprint函数根据请求指纹过滤默认(RFPDupeFilter)。
答案 1 :(得分:1)
在http://doc.scrapy.org/en/latest/topics/request-response.html
查看dont_filter请求参数dont_filter(boolean) - 表示调度程序不应过滤此请求。当您想要多次执行相同的请求时,可以使用此选项来忽略重复过滤器。小心使用它,否则您将进入爬行循环。默认为False。