欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中動(dòng)態(tài)檢測編碼chardet的使用教程

 更新時(shí)間:2017年07月06日 10:58:29   作者:bladestone  
最近利用python抓取一些網(wǎng)上的數(shù)據(jù),遇到了編碼的問題。非常頭痛,幸運(yùn)的是找到了解決的方法,下面這篇文章主要跟大家介紹了關(guān)于Python中動(dòng)態(tài)檢測編碼chardet的使用方法,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

在互聯(lián)網(wǎng)的世界里,每個(gè)頁面都使用了編碼,但是形形色色的編碼讓我們的代碼何以得知其棉麻格式呢?charset將很好的解決這個(gè)問題。

1. chardet

chardet是Python社區(qū)提供了一個(gè)類庫包,方便我們在代碼中動(dòng)態(tài)檢測當(dāng)前頁面或者文件中的編碼格式信息。接口非常的簡單和易用。

Project主頁: https://github.com/chardet/chardet

本地下載地址:http://xiazai.jb51.net/201707/yuanma/chardet(jb51.net).rar

文檔主頁: http://chardet.readthedocs.io/en/latest/usage.html

2. 使用示例

Notice: 筆者使用的python 3.5 +

Case 1: 檢測特定頁面的編碼格式

import chardet
import urllib.request
TestData = urllib.request.urlopen('http://www.baidu.com/').read()
print(chardet.detect(TestData))

輸出結(jié)果:

{'confidence': 0.99, 'encoding': 'utf-8'}

結(jié)果分析, 其準(zhǔn)確率99%的概率,編碼格式為utf-8

使用說明:detect()為其關(guān)鍵方法

Case 2: 增量檢測編碼格式

import urllib.request
from chardet.universaldetector import UniversalDetector
usock = urllib.request.urlopen('http://yahoo.co.jp/')
detector = UniversalDetector()
for line in usock.readlines():
detector.feed(line)
if detector.done: break
detector.close()
usock.close()
print(detector.result)

輸出結(jié)果:

{'confidence': 0.99, 'encoding': 'utf-8'}

說明: 為了提高預(yù)測的準(zhǔn)確性,基于dector.feed()來實(shí)現(xiàn)持續(xù)的信息輸入,在信息足夠充足之后結(jié)束信息輸入,給出相應(yīng)的預(yù)測和判斷。

如果需要復(fù)用detector方法,需要進(jìn)行detector.reset()進(jìn)行重置,從而可以復(fù)用。

Case 3: 在安裝chardet之后,可以基于命令行來檢測文件編碼

% chardetect somefile someotherfile
somefile: windows-1252 with confidence 0.5
someotherfile: ascii with confidence 1.0

在系統(tǒng)層面,可以直接基于命令行來進(jìn)行文件編碼檢測,非常簡單易用。

3. 總結(jié)

chardet是非常易用和功能強(qiáng)大的Python包,相信大家在web世界中遨游之時(shí),肯定會(huì)用上這個(gè)chardet的。 如有問題,歡迎大家反饋給我。

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 基于Django框架利用Ajax實(shí)現(xiàn)點(diǎn)贊功能實(shí)例代碼

    基于Django框架利用Ajax實(shí)現(xiàn)點(diǎn)贊功能實(shí)例代碼

    點(diǎn)贊這個(gè)功能是我們現(xiàn)在經(jīng)常會(huì)遇到的一個(gè)功能,下面這篇文章主要給大家介紹了關(guān)于基于Django框架利用Ajax實(shí)現(xiàn)點(diǎn)贊功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • Python實(shí)現(xiàn)霍夫圓和橢圓變換代碼詳解

    Python實(shí)現(xiàn)霍夫圓和橢圓變換代碼詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)霍夫圓和橢圓變換代碼詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • 利用Pandas實(shí)現(xiàn)對數(shù)據(jù)進(jìn)行移動(dòng)計(jì)算

    利用Pandas實(shí)現(xiàn)對數(shù)據(jù)進(jìn)行移動(dòng)計(jì)算

    這篇文章主要為大家詳細(xì)介紹了如何利用Pandas實(shí)現(xiàn)對數(shù)據(jù)進(jìn)行移動(dòng)計(jì)算,文中的示例代碼講解詳細(xì),對我們了解Pandas有一定幫助,需要的可以參考一下
    2022-07-07
  • python端口掃描系統(tǒng)實(shí)現(xiàn)方法

    python端口掃描系統(tǒng)實(shí)現(xiàn)方法

    這篇文章主要介紹了python端口掃描系統(tǒng)實(shí)現(xiàn)方法,可實(shí)現(xiàn)簡單的外網(wǎng)IP掃描及寫入MySQL數(shù)據(jù)庫等功能,需要的朋友可以參考下
    2014-11-11
  • Flask項(xiàng)目的部署的實(shí)現(xiàn)步驟

    Flask項(xiàng)目的部署的實(shí)現(xiàn)步驟

    本文主要介紹了Flask項(xiàng)目的部署的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Python常用的json標(biāo)準(zhǔn)庫

    Python常用的json標(biāo)準(zhǔn)庫

    今天小編就為大家分享一篇關(guān)于Python常用的json標(biāo)準(zhǔn)庫,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 詳解Django框架中的視圖級緩存

    詳解Django框架中的視圖級緩存

    這篇文章主要介紹了詳解Django框架中的視圖級緩存,Django是最具人氣的Python web開發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • Python如何讀取文件中圖片格式

    Python如何讀取文件中圖片格式

    這篇文章主要介紹了Python如何讀取文件中圖片格式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python 類與元類的深度挖掘 I【經(jīng)驗(yàn)】

    Python 類與元類的深度挖掘 I【經(jīng)驗(yàn)】

    super() 方法解決了類->實(shí)例實(shí)踐過程中關(guān)于命名空間的一些問題,而關(guān)于生成對象的流程,我們知道初始化實(shí)例是通過類的 __init__() 方法完成的,在此之前可能涉及到一些其它的準(zhǔn)備工作,包括接下來提到的 mro() 方法以及關(guān)鍵的元類->類的過程
    2016-05-05
  • Python爬蟲之超級鷹驗(yàn)證碼應(yīng)用

    Python爬蟲之超級鷹驗(yàn)證碼應(yīng)用

    眾所周知python是一個(gè)很強(qiáng)大的語言,它擁有眾多的庫,今天我嘗試了使用超級鷹第三方平臺進(jìn)行驗(yàn)證碼的開發(fā),需要的朋友可以參考下
    2022-08-08

最新評論