抓取一批頁面的內容時,經常會遇到編碼型別不同的問題,經常令我們比較頭痛,python有乙個第三方的編碼檢測模組模組,可以為我們自動檢測編碼型別,並給出信心度,它檢測的返回結果形式為:
它是乙個字典型別,我們可以通過字典的方式訪問結果中的值。
如果採用源**安裝方法,有可能會提示缺少setuptools這個模組。因此這裡我們採用另外一種更為方便的安裝方法,不論你選擇哪種安裝包,將它解壓得到其中的資料夾【chardet】將這個資料夾複製到【python安裝根目錄\lib\site-packages】下,確保這個位置可以被python引用到。如果不能被引用到**入環境變數。
chardet有兩種檢測檔案編碼的方法,下面我們分別用例子介紹一下。
>>>
import chardet
>>> f = open('songs.txt','r')
>>> result = chardet.detect(f.read())
>>> result
import urllib
from chardet.universaldetector import universaldetector
usock = urllib.urlopen('')
#建立乙個檢測物件
detector = universaldetector()
forline
in usock.readlines():
#分塊進行測試,直到達到閾值
detector.feed(line)
if detector.done:
break
#關閉檢測物件
detector.close()
usock.close()
#輸出檢測結果
print detector.result
執行結果:
對於大檔案來時,用這種方法可以節省記憶體,因為第一種方法是直接將整乙個檔案讀入記憶體當中,而第二種方法是逐行讀入記憶體,然後進行檢測,這樣就沒有了讀入整個檔案的記憶體開銷。 Python之動態檢測編碼chardet
引言 在網際網路的世界裡,每個頁面都使用了編碼,但是形形色色的編碼讓我們的 何以得知其棉麻格式呢?charset將很好的解決這個問題。chardet是python社群提供了乙個類庫包,方便我們在 中動態檢測當前頁面或者檔案中的編碼格式資訊。介面非常的簡單和易用。project主頁 文件主頁 2.使用...
python編碼模式檢測和解碼
標準ascii碼使用7位二進位制數表示大寫或小寫字母,數字0到9標點符號以及在美式英語中使用的特殊控制字元。在標準ascii碼中,最高位 b7 用作奇偶校驗位,所謂奇偶校驗,是指在 傳送過程中用來檢驗是否出現錯誤的一種方法,一般分寄校驗和偶校驗兩種。奇校驗規定 正確的 乙個位元組中1的個數必須是奇數...
Python文字讀寫及編碼檢測
因為csdn編輯器的原因,後面有一串空白,但是在編輯預覽裡是正常的 目錄 1.文字讀寫 2.路徑及檔名操作 3.編碼判斷 python的檔案操作介面屬於簡單易用型的,利用open函式開啟檔案之後就可以進行操作了,也可以用print重定向輸出到檔案。file path r 測試檔案.txt 1 寫檔案...