在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    文章

    959

    瀏覽量

    54977
  • 代碼
    +關注

    關注

    30

    文章

    4841

    瀏覽量

    69167
  • python
    +關注

    關注

    56

    文章

    4811

    瀏覽量

    85090
收藏 人收藏

    評論

    相關推薦

    OpenHarmony應用開發安裝數學

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

    本地安裝并創建MySQL數據

    本地安裝并創建MySQL數據
    的頭像 發表于 01-13 15:15 ?910次閱讀
    本地<b class='flag-5'>安裝</b>并創建MySQL數據<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

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

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

    Linux上安裝Oracle 11g數據

    Linux上安裝Oracle 11g數據
    發表于 09-07 09:14 ?3次下載
    Linux上<b class='flag-5'>安裝</b>Oracle 11g數據<b class='flag-5'>庫</b>

    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>和資源說明詳細中文概述

    介紹USB IP是什么?

    USB IP介紹(上)
    的頭像 發表于 07-05 00:13 ?6462次閱讀
    <b class='flag-5'>介紹</b>USB IP<b class='flag-5'>庫</b>是什么?

    如何在計算機上安裝Arduino

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

    Chardet通用字符編碼檢測器

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

    如何安裝常用Python

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

    如何安裝Python圖像處理PIL

    安裝PIL 要使用PIL,我們首先需要安裝它。有兩種方法可以安裝PIL: 方法一:使用pi
    的頭像 發表于 09-12 17:15 ?2809次閱讀
    如何<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 ?156次閱讀
    MySQL數據<b class='flag-5'>庫</b>的<b class='flag-5'>安裝</b>
    主站蜘蛛池模板: 久久亚洲精品国产亚洲老地址 | 久久国产精品亚洲综合 | 国产精品自线在线播放 | 天天操天天曰 | 欧美成人免费午夜全 | 天天摸天天爽天天澡视频 | 快色视频免费观看 | 欧美综合在线视频 | 午夜男人的天堂 | 一区二区三区免费视频播放器 | 天堂中文字幕在线观看 | 欧美黑人粗硬大在线看 | 老师啊灬啊灬用力啊快224视频 | 刺激第一页720lu久久 | 99久久国产免费福利 | 日本又粗又长一进一出抽搐 | 青草国产在线视频 | 国产亚洲婷婷香蕉久久精品 | 中文字幕一区二区三区在线播放 | 久久久久久久久久久观看 | 加勒比一本一道在线 | 久久国产免费福利永久 | 五月天婷婷在线观看视频 | 特级做a爰片毛片免费看一区 | 国产一区精品视频 | 午夜免费啪视频 | 好男人午夜www视频在线观看 | 不卡中文字幕在线 | 国产免费高清视频在线观看不卡 | 亚洲va老文色欧美黄大片人人 | 97国内精品久久久久久久影视 | 久久手机视频 | 另类性欧美喷潮videofree | 无内丝袜透明在线播放 | 日本精品视频 | 久久伊人男人的天堂网站 | 色香蕉在线观看 | 成年人色网站 | 四虎影院网 | 在线免费视频国产 | 国语自产自拍秒拍在线视频 |