python獲取網頁編碼格式

2021-09-27 23:55:45 字數 779 閱讀 6482

爬蟲獲取網頁內容要準確獲取網頁的編碼格式,有utf-8,gbk,gb2312等等。

今天在爬新聞**時候,發現同乙個網頁會分不同的編碼,但是獲取html節點相關是根據第乙個編碼格式來的,拿人民網新聞頁原始碼舉例。

當我使用python的

url =

""r = request.request(url)

html = request.urlopen(r)

.read(

).decode(

'utf-8'

,'ignore'

)

這個方法的時候,decode的編碼一定要選擇圖1的第乙個箭頭的編碼,不然會亂碼。但是怎麼獲取呢,就是乙個很坑的過程,python常用的charset工具會把網頁解析成windows****的編碼方式,不準確,於是我想到用正則匹配到第乙個編碼格式。

real_charset = re.findall(r'charset=(.*?)"'

,html[0:

500]

,re.s)[0

]html = request.urlopen(r)

.read(

).decode(real_charset,

'ignore'

)

這裡解析網頁的時候選擇utf-8就行,然後正則匹配,拿到正確的編碼格式再繼續下面的網頁內容解析。

Python爬蟲獲取網頁編碼格式

網頁編碼格式是每個網頁規定的本頁面文字的編碼方式,其中比較流行的是ascii,gbk,utf 8,iso等。觀察許多網頁的編碼格式都是在meta標籤的content屬性中定義的。基於以上特點本文提供獲取編碼格式的方法。如下 注 本人使用的是idle python 3.7 64 bit,裝載bs4庫 ...

python檢視網頁編碼格式

我們在進行網頁的獲取時,通常要檢視該網頁的編碼時,可以通過python去獲取該網頁的編碼格式。from urllib import request import chardet if name main response request.urlopen html response.read char...

網頁編碼格式

以前一直對utf unicode ascii還有gbk編碼方式不太了解,只知道如果有中文的話一般用utf 8或gbk儲存,今天正好又接觸到了這個問題就google了下。ascii是用來表示英文的一種編碼規範,表示的最大字元數為256個,每個字元佔1個位元組。如果只用來表示英文應該是綽綽有餘了,可是還...