scrapy的去重機制

scrapy是經過hashlib算法轉成長度一致的url,而後再經過set集合去重的,有興趣看源碼算法

去重的中間件在scrapy 的 dupefilters.py文件中:scrapy

-->  #去重器函數

RFDupeFilter()

-->有個函數叫url

request_seen()
#被scrapy/core/scheduler.py調用

這個是調度器spa

scheduler.py#文件中有個函數叫enqueue_request()的函數
每來一個url就是經過這個函數來執行的

每次執行以前都會調用到    request_seen(request)   這個方法code

這個方法就會生成一個指紋,指紋下面的掉用的就比較複雜了,簡單的說就是要去執行       hashlib.sha1()       這個算法來生成一個固定長度的哈兮值中間件

再而後就是在那個去重器中的blog

self.fingerprints = set() 

就是經過上句代碼執行了set集合來去重了源碼

相關文章
相關標籤/搜索