爬蟲去重方法和編碼小結

2021-08-14 22:21:42 字數 938 閱讀 4566

爬蟲去重方法

①將訪問過的url儲存到資料庫中

②將訪問過的url儲存到set中,只需要o(1)的代價就可以查詢url

③url經過md5等方法雜湊後儲存到set中④用bitmap方法, 將訪問過的url通過hash函式對映到某一位

⑤bloomfilter方法對bitmap進行改進, 多重hash函式降低衝突

字串編碼

①計算機只能處理數字, 文字轉換為數字才能處理。計算機中8個bit作為乙個位元組, 所以乙個位元組能表示最大的數字就是255

②計算機是美國人發明的, 所以乙個位元組可以表示所有字元了, 所以ascii(乙個位元組)編碼就成為美國人的標準編碼

③但是ascii處理中文明顯是不夠的, 中文不止255個漢字, 所以中國制定了gb2312編碼, 用兩個位元組表示乙個漢字。 gb2312還把ascii包含進去了, 同理, 日文,韓文等等上百個國家為了解決這個問題就都發展了一套位元組的編碼, 標準就越來越多, 如果出現多種語言混合顯示就一定會出現亂碼,所以unicode出現了,將所有語言統一到一套編碼中。

④看一下ascii和unicode編碼:

1)字母a 用ascii編碼十進位制是65, 二進位制 0100 0001

2)漢字「中」已近超出了ascii編碼的範圍, 用unicode編碼是20013

二進位制是 01001110 00101101

3)a用unicode編碼只需要前面補0二進位制是 00000000 0100 0001

⑤亂碼問題解決了, 但是如果內容全是英文,unicode編碼比ascii需要多一倍的儲存空間, 同時如果傳輸需要多一倍的傳輸。所以出現了可變長的編碼「utf-8」,把英文變長乙個位元組, 漢字3個位元組。 特別生僻的變成4-6位元組, 如果傳輸大量的英文, utf8作用就很明顯了

陣列去重方法小結

1.最基本的去重方法 思路 定義乙個新陣列,並存放原陣列的第乙個元素,然後將元素組一一和新陣列的元素對比,若不同則存放在新陣列中。function unique arr for var i 0 iif json arr i 思路 該方法優點是不會產生乙個新的陣列。b b function conca...

python爬蟲去重策略 爬蟲去重策略

1 使用scrapy自帶的set集合去重,當程式結束的時候會被清空,缺點 再次執行會導致資料重複。2 使用mysql做去重,對url位址進行md5,base64加密,加密之後會得到一串字元,判斷字串 是否在mysql表中,如果在表示已經爬取過了,如果不在,表示沒有爬取,執行請求,將加密後的url 3...

python爬蟲去重策略 爬蟲去重策略

下面我會從程式 資料庫等幾個層面詳細敘述一下相應的去重策略。程式層面,像十萬以下url的抓取可以簡單的用set來實現去重。如果是百萬或者千萬量級的話,考慮到效能,我們應該使用基於hash的set實現去重。知道了前面雜湊的知識,你肯定就懂這是為什麼了。雜湊使得我們並不需要對比超長的url以及param...