爬蟲URL去重策略

2021-09-13 10:18:08 字數 457 閱讀 5308

爬蟲為何要進行去重:

特點:應用簡單、效率非常低下

使用方法:

效率:效率十分低下,並使用很少。不進行計算

特點:速度較快、記憶體占用會越來越大

效率:100000000×2byte×50個字元/1024/1024/1024 = 9g

特點:md5能將任意長度字串壓縮成固定長度md5字串,並且不會重複。

效率:能夠成倍的壓縮字串,大約只需要兩三g的記憶體

特點:十分節省記憶體,容易出現對映衝突

使用方法:

乙個byte有八個位,將訪問過的url通過hash函式對映到某一位,但是容易將兩個url對映到同乙個位上。

效率:對記憶體壓縮十分顯著,100000000/8/1024/1024/1024 = 11.920 大約十二m的記憶體占用。

特點:通過多個hash函式減少衝突可能性

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的去重。缺點 ...