chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內(nèi)不再提示

chardet庫的安裝與介紹

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-31 15:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.chardet庫的安裝與介紹

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

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

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

pip install chardet

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

import chardet

2.chardet庫的使用

這個小節(jié),我們分3部分講解。

2.1 chardet.detect()函數(shù)

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

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

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

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

檢測gbk編碼的中文:

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

chardet.detect(str1)["encoding"]

結(jié)果如下:

圖片

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

檢測utf-8編碼的中文:

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

chardet.detect(str2)["encoding"]

結(jié)果如下:

圖片

檢測一段日文:

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

chardet.detect(str3)

結(jié)果如下:

圖片

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

我們以百度網(wǎng)頁為例子,進行講述。

圖片

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

圖片

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

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

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

結(jié)果如下:

圖片

你會發(fā)現(xiàn):正確指定編碼后,沒有亂碼。如果你將編碼改為gbk,再看看結(jié)果。此時已經(jīng)亂碼。

圖片

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

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

結(jié)果如下:

圖片

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

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

    關(guān)注

    6

    文章

    1016

    瀏覽量

    56661
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4942

    瀏覽量

    73159
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4858

    瀏覽量

    89599
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    OpenHarmony應用開發(fā)安裝數(shù)學

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

    本地安裝并創(chuàng)建MySQL數(shù)據(jù)

    本地安裝并創(chuàng)建MySQL數(shù)據(jù)
    的頭像 發(fā)表于 01-13 15:15 ?1601次閱讀
    本地<b class='flag-5'>安裝</b>并創(chuàng)建MySQL數(shù)據(jù)<b class='flag-5'>庫</b>

    數(shù)據(jù)產(chǎn)品介紹與分類

    2-13-數(shù)據(jù)介紹及MySQL安裝
    發(fā)表于 08-01 10:45

    STM32CubeMx+JRE+HAL安裝教程

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

    在MacOS M1上構(gòu)建期間出現(xiàn)“ModuleNotFoundError:沒有名為‘chardet’的模塊”是怎么回事?

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

    Linux上安裝Oracle 11g數(shù)據(jù)

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

    04 USB介紹

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

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

    本文的主要內(nèi)容介紹的是Stellaris軟件安裝,特性介紹和資源說明詳細中文概述
    發(fā)表于 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介紹(上)
    的頭像 發(fā)表于 07-05 00:13 ?7017次閱讀
    <b class='flag-5'>介紹</b>USB IP<b class='flag-5'>庫</b>是什么?

    如何在計算機上安裝Arduino

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

    Chardet通用字符編碼檢測器

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

    如何安裝常用Python

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

    如何安裝Python圖像處理PIL

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

    MySQL數(shù)據(jù)安裝

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

    AD封裝安裝教程

    電子發(fā)燒友網(wǎng)站提供《AD封裝安裝教程.pdf》資料免費下載
    發(fā)表于 06-19 15:35 ?3次下載