布隆過濾器
安裝命令:
pip install pybloom_live
使用步驟:
1)安裝
2)建立布隆過濾器
3)向過濾器中新增字串,驗證過濾器輸出結果
例:
import pybloom_live
f = pybloom_live.bloomfilter(capacity=10000, error_rate=0.01)
# bloomfilter 是定容 scalablebloomfilter 可以自動擴容
# bloomfilter當數量超過capacity會報錯,如果資料量很大,建議直接使用scalablebloomfilter
print(f.add("1111"))
print(f.add("2222"))
print(f.add("3333"))
print(f.add("1111"))
結果:false false false true
例:
from pybloom_live import scalablebloomfilter
f = pybloom_live.scalablebloomfilter(initial_capacity=5000000, mode=scalablebloomfilter.large_set_growth,
error_rate=0.00001)
print(f.add("1111"))
print(f.add("2222"))
print(f.add("3333"))
print(f.add("1111"))
設定capacity的值越大,error_rate的值越小,出錯的概率越低,但占用的資源也會越多。 python爬蟲去重策略 爬蟲去重策略
1 使用scrapy自帶的set集合去重,當程式結束的時候會被清空,缺點 再次執行會導致資料重複。2 使用mysql做去重,對url位址進行md5,base64加密,加密之後會得到一串字元,判斷字串 是否在mysql表中,如果在表示已經爬取過了,如果不在,表示沒有爬取,執行請求,將加密後的url 3...
python爬蟲去重策略 爬蟲去重策略
下面我會從程式 資料庫等幾個層面詳細敘述一下相應的去重策略。程式層面,像十萬以下url的抓取可以簡單的用set來實現去重。如果是百萬或者千萬量級的話,考慮到效能,我們應該使用基於hash的set實現去重。知道了前面雜湊的知識,你肯定就懂這是為什麼了。雜湊使得我們並不需要對比超長的url以及param...
python爬蟲去重策略 爬蟲的去重策略
1.爬蟲時將爬取過的url存放到資料庫中,利用資料庫進行url的去重 每請求乙個url之前,都現在資料庫中查詢一下。方法最簡單,效率是最低的。2.將已經請求過的url儲存到set中,而set集合是在記憶體中建立的,訪問效率比資料庫的方式要快很多,只需要很簡單的乙個方法,就可以實現url的去重。缺點 ...