常用的第三方模組 chardet url

2022-03-03 01:58:23 字數 1459 閱讀 6719

chardet

字串編碼一直是令人非常頭疼的問題,尤其是我們在處理一些不規範的第三方網頁的時候。雖然python提供了unicode表示的strbytes兩種資料型別,並且可以通過encode()decode()方法轉換,但是,在不知道編碼的情況下,對bytesdecode()不好做。

對於未知編碼的bytes,要把它轉換成str,需要先「猜測」編碼。猜測的方式是先收集各種編碼的特徵字元,根據特徵字元判斷,就能有很大概率「猜對」。

當然,我們肯定不能從頭自己寫這個檢測編碼的功能,這樣做費時費力。chardet這個第三方庫正好就派上了用場。用它來檢測編碼,簡單易用。

如果安裝了anaconda,chardet就已經可用了。否則,需要在命令列下通過pip安裝:

$ pip install chardet

如果遇到permission denied安裝失敗,**上sudo重試。

當我們拿到乙個bytes時,就可以對其檢測編碼。用chardet檢測編碼,只需要一行**:

>>> chardet.detect(b'hello, world!')

檢測出的編碼是ascii,注意到還有個confidence字段,表示檢測的概率是1.0(即100%)。

我們來試試檢測gbk編碼的中文:

>>> data = '離離原上草,一歲一枯榮'.encode('gbk')

>>> chardet.detect(data)

檢測的編碼是gb2312,注意到gbk是gb2312的超集,兩者是同一種編碼,檢測正確的概率是74%,language字段指出的語言是'chinese'

對utf-8編碼進行檢測:

>>> data = '離離原上草,一歲一枯榮'.encode('utf-8')

>>> chardet.detect(data)

我們再試試對日文進行檢測:

>>> data = '最新の主要ニュース'.encode('euc-jp')

>>> chardet.detect(data)

可見,用chardet檢測編碼,使用簡單。獲取到編碼後,再轉換為str,就可以方便後續處理。

chardet支援檢測的編碼列表請參考官方文件supported encodings。

使用chardet檢測編碼非常容易,chardet支援檢測中文、日文、韓文等多種語言。

第三方模組

參考 第三方模組 requestsimport requests 對於帶引數的url,傳入乙個dict作為params引數 params 要傳入http header時,我們傳入乙個dict作為headers引數 請求中傳入cookie,只需準備乙個dict傳入cookies引數 my cookie...

Python常用第三方模組

requests kenneth reitz寫的最富盛名的http庫。每個python程式設計師都應該有它。wxpython python的乙個gui 圖形使用者介面 工具。pillow 它是pil python圖形庫 的乙個友好分支。對於使用者比pil更加友好,對於任何在圖形領域工作的人是必備的庫...

常用的第三方模組 requests url

我們已經講解了python內建的urllib模組,用於訪問網路資源。但是,它用起來比較麻煩,而且,缺少很多實用的高階功能。更好的方案是使用requests。它是乙個python第三方庫,處理url資源特別方便。如果安裝了anaconda,requests就已經可用了。否則,需要在命令列下通過pip安...