女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

chardet庫的安裝與介紹

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-31 15:30 ? 次閱讀

1.chardet庫的安裝與介紹

玩兒過爬蟲的朋友應該知道,在爬取不同的網頁時,返回結果會出現亂碼的情況。比如,在爬取某個中文網頁的時候,有的頁面使用GBK/GB2312,有的使用UTF8,如果你需要去爬一些頁面,知道網頁編碼很重要的。

雖然HTML頁面有charset標簽,但是有些時候是不對的,那么chardet就能幫我們大忙了。使用 chardet 可以很方便的實現字符串/文件的編碼檢測。

如果你安裝過Anaconda,那么可以直接使用chardet庫。如果你只是安裝了Python的話,就需要使用下面幾行代碼,完成chardet庫的安裝。

pip install chardet

接著,使用下面這行代碼,導入chardet庫。

import chardet

2.chardet庫的使用

這個小節,我們分3部分講解。

2.1 chardet.detect()函數

detect()函數接受一個參數,一個非unicode字符串。它返回一個字典,其中包含自動檢測到的字符編碼和從0到1的可信度級別。

  • encoding:表示字符編碼方式。
  • confidence:表示可信度。
  • language:語言。

光看這個解釋,大多數朋友可能看不懂,下面我們就用例子來講述這個函數。

2.2 使用該函數分別檢測gbk、utf-8和日語

檢測gbk編碼的中文:

str1 = '大家好,我是黃同學'.encode('gbk')
chardet.detect(str1)

chardet.detect(str1)["encoding"]

結果如下:

圖片

檢測的編碼是GB2312,注意到GBK是GB2312的父集,兩者是同一種編碼,檢測正確的概率是99%,language字段指出的語言是'Chinese'。

檢測utf-8編碼的中文:

str2 = '我有一個夢想'.encode('utf-8')
chardet.detect(str2)

chardet.detect(str2)["encoding"]

結果如下:

圖片

檢測一段日文:

str3 = 'ありがとう'.encode('euc-jp')
chardet.detect(str3)

chardet.detect(str3)

結果如下:

圖片

2.3 如何在“爬蟲”中使用chardet庫呢?

我們以百度網頁為例子,進行講述。

圖片

這個網頁的源代碼,使用的是什么編碼呢?我們看看源代碼:

圖片

從圖中可以看到,是utf-8字符編碼。

如果不使用chardet庫,獲取網頁源代碼的時候,怎么指定字符編碼呢?

import chardet
import requests

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
response = requests.get('https://www.baidu.com',headers=headers)
response.encoding = "utf-8"
response.text

結果如下:

圖片

你會發現:正確指定編碼后,沒有亂碼。如果你將編碼改為gbk,再看看結果。此時已經亂碼。

圖片

如果使用chardet庫,獲取網頁源代碼的時候,可以輕松指定字符編碼!

import chardet
import requests

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
response = requests.get('https://www.baidu.com',headers=headers)

# 注意下面這行代碼,是怎么寫的?
response.encoding = chardet.detect(response.content)['encoding']
response.text

結果如下:

圖片

編碼不用我們自己查找,也不用猜,直接交給chardet庫去猜測,正確率還高。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編碼
    +關注

    關注

    6

    文章

    967

    瀏覽量

    55505
  • 代碼
    +關注

    關注

    30

    文章

    4887

    瀏覽量

    70266
  • python
    +關注

    關注

    56

    文章

    4825

    瀏覽量

    86210
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    OpenHarmony應用開發安裝數學

    OpenHarmony應用開發安裝數學
    的頭像 發表于 12-01 14:15 ?1429次閱讀
    OpenHarmony應用開發<b class='flag-5'>安裝</b>數學<b class='flag-5'>庫</b>

    數據產品介紹與分類

    2-13-數據介紹及MySQL安裝
    發表于 08-01 10:45

    STM32CubeMx+JRE+HAL安裝教程

    Warning:寫作不易,請勿轉載,感謝!STM32CubeMx+JRE+HAL安裝教程寫作背景1:JRE程序包與介紹1.1:安裝JRE步驟2:STM32CubeMX
    發表于 08-11 08:46

    如何安裝HAL固件

    如何安裝HAL固件
    發表于 11-29 07:51

    H2數據介紹

    一、H2數據介紹  常用的開源數據有:H2,Derby,HSQLDB,MySQL,PostgreSQL。其中H2和HSQLDB類似,十分適合作為嵌入式數據使用,而其它的數據
    發表于 12-17 08:03

    在MacOS M1上構建期間出現“ModuleNotFoundError:沒有名為‘chardet’的模塊”是怎么回事?

    我在 M1 mac 上使用 ESP-IDF 時遇到問題。我已經嘗試了我發現的一切來解決它,但顯然,我沒有運氣。癥結在于缺少“chardet”python 模塊。我讀到的所有涉及缺少“chardet
    發表于 04-13 07:16

    04 USB介紹

    04 USB介紹
    發表于 10-11 09:26 ?4次下載
    04 USB<b class='flag-5'>庫</b><b class='flag-5'>介紹</b>

    Stellaris軟件安裝,特性介紹和資源說明詳細中文概述

    本文的主要內容介紹的是Stellaris軟件安裝,特性介紹和資源說明詳細中文概述
    發表于 05-09 11:20 ?5次下載
    Stellaris軟件<b class='flag-5'>庫</b>的<b class='flag-5'>安裝</b>,特性<b class='flag-5'>介紹</b>和資源說明詳細中文概述

    如何在計算機上安裝Arduino

    Arduino是共享代碼的便捷方法,例如設備驅動程序或常用的實用程序功能。本指南詳細介紹了如何在計算機上安裝。有關Arduino及其使
    的頭像 發表于 11-27 09:42 ?7133次閱讀
    如何在計算機上<b class='flag-5'>安裝</b>Arduino<b class='flag-5'>庫</b>

    ST-MCSDK 5.3.3版本電機控制安裝包資料合集免費下載

    本文檔的主要內容詳細介紹的是ST-MCSDK 5.3.3版本電機控制安裝包資料合集免費下載。
    發表于 11-28 11:34 ?0次下載
    ST-MCSDK 5.3.3版本電機控制<b class='flag-5'>庫</b><b class='flag-5'>安裝</b>包資料合集免費下載

    安裝TI_MSP432和導入CCS工程

    安裝TI_MSP432和導入CCS工程
    發表于 12-05 13:36 ?10次下載
    <b class='flag-5'>安裝</b>TI_MSP432<b class='flag-5'>庫</b>和導入CCS工程

    Chardet通用字符編碼檢測器

    ./oschina_soft/chardet.zip
    發表于 05-24 10:40 ?4次下載
    <b class='flag-5'>Chardet</b>通用字符編碼檢測器

    如何安裝常用Python

    使用常用的Python是非常重要的一步。本文將介紹如何安裝常用的Python,以幫助您在Python開發中更加高效地進行編程。
    的頭像 發表于 04-14 12:11 ?1439次閱讀

    如何安裝Python圖像處理PIL

    安裝PIL 要使用PIL,我們首先需要安裝它。有兩種方法可以安裝PIL: 方法一:使用pi
    的頭像 發表于 09-12 17:15 ?3142次閱讀
    如何<b class='flag-5'>安裝</b>Python圖像處理PIL<b class='flag-5'>庫</b>

    MySQL數據安裝

    MySQL數據安裝 【一】各種數據的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】MySQL
    的頭像 發表于 01-14 11:25 ?493次閱讀
    MySQL數據<b class='flag-5'>庫</b>的<b class='flag-5'>安裝</b>