gb2312 requests亂碼 爬蟲 網頁亂碼

2021-10-17 09:35:50 字數 1135 閱讀 1730

很多同學會遇到python爬蟲得到的html亂碼的問題。其實這個問題搞清楚邏輯,就能夠解決。

一般爬蟲

import requests

from urllib.request import quote

# 找到乙個電影鏈結

name = "無名之輩"

url=''+str(quote(name.encode('gbk')))

res=requests.get(url)

html=res.text

點開html中的鏈結,看到亂碼了。

圖1:亂碼

2. 問題處理

①首先,在google中輸入電影「無名之輩」的鏈結(然後ctrl+u,檢視源**頁。

圖2:點開google瀏覽器的源**頁

②在源**第4行,找到charset=gb2312,說明這個網頁的字型是gb2312的格式。python預設字型是utf-8。轉碼!

③轉碼

import requests

from urllib.request import quote

# 找到電影鏈結

name = "無名之輩"

url=''+str(quote(name.encode('gbk')))

res=requests.get(url)

# 轉碼:至關重要

res.encoding = 'gb2312'

html=res.text

加上轉碼一行,那麼html就正常了。

圖3:轉碼之後的爬蟲結果

3.結語

以上就是亂碼問題的處理。希望對大家有益~

gb2312學習筆記

1,gb 2312中對所收漢字進行了 分割槽 處理,每區含有94個漢字 符號。01 09區為特殊符號。16 55區為一級漢字,按拼音排序。56 87區為二級漢字,按部首 筆畫排序。10 15區及88 94區則未有編碼。舉例來說,啊 字是gb2312之中的第乙個漢字,它的區位碼就是1601。2,在使用...

GB2312編碼範圍

gb2312編碼範圍 a1a1 fefe,其中漢字編碼範圍 b0a1 f7fe。gb2312編碼是第乙個漢字編碼國家標準,由中國國家標準總局1980年發布,1981年5月1日開始使用。gb2312編碼共收錄漢字6763個,其中一級漢字3755個,二級漢字3008個。同時,gb2312編碼收錄了包括拉...

02 抓取足球比賽結果之gb2312導致亂碼的解決

爬取所有完賽列表 import requests if name main 瀏覽器偽裝 headers kw input 輸入賽程年月日開始採集資料 這裡需要指定日期格式為 20200101 response變數為第一次爬取的完賽列表 response requests.get kw htm hea...