天天看點

Scrapy去重

一、原生

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

繼續閱讀