一、原生
1、模块
2、RFPDupeFilter方法
a、request_seen
核心:爬虫每执行一次yield Request对象,则执行一次request_seen方法
作用:用来去重,相同的url只能访问一次
实现:将url值变成定长、唯一的值,如果这个url对象存在,则返回True表名已经访问过,若url不存在则添加该url到集合
1)、request_fingerprint
作用:对request(url)变成定长唯一的值,如果使用md5的话,下面的两个url值不一样
注意:request_fingerprint() 只接收request对象
2)、request_seen
b、open
父类BaseDupeFilter中的方法,爬虫开始时,执行
c、close
爬虫结束时执行
d、log
记录日志
e、from_settings
原理及作用:和pipelines中的from_crawler一致
二、自定义
待续
1、配置文件(settings.py)
2、自定义去重类(继承BaseDupeFilter)
3、前提条件
yield request的对象
dont_filter不能为True,这个值默认为False