Python爬蟲過程中出現(xiàn)中文解碼出現(xiàn)亂碼的現(xiàn)象

諸如類似的代碼:

……

texts = bs.find_all('div',class='content_element').p.text.strip()

???? print(texts)

……

搜索的內(nèi)容中有中文的情況下,python包BeautifulSoup解碼網(wǎng)頁的時候默認應該是使用了gbk進行編碼

通過此代碼可以看出

……

r=requests.get(link,headers=headers)

Print(r.encoding)

……

可以顯示編碼格式為iso-8859-1

因此我在代碼中定義的headers中沒有說明網(wǎng)頁頭文件中的編碼格式,以下圖片為非標準格式瀏覽器頭部文件


一般標準的頭部文件格式:

? ?

《HTTP權威指南》里第16章國際化里提到,如果HTTP響應中Content-Type字段沒有指定charset,則默認頁面是'ISO-8859-1'編碼。這處理英文頁面當然沒有問題,但是中文頁面,就會有亂碼了!


前面已經(jīng)說明如何查看當前編碼格式的方法,下面就說一下遇見此類問題該如何進行解決和糾正


首先因為使用的查看IDE中使用的解碼格式是utf-8的,之前網(wǎng)頁中默認使用的編碼格式也是utf-8的,所以我們必須將其解碼成utf-8格式的字符才能正常顯示中文

使用之前的代碼進行此操作:

texts = bs.find_all('div',class='content_element').p.text.strip().encode(‘iso-8859-1’).decode(‘utf-8’)

???? print(texts)


或者在之前進行encoding=‘utf-8’解碼修正

……

r=requests.get(link,headers=headers)

r=encoding=’utf-8’

print(r.encoding)

……

參考網(wǎng)站:

? ?https://www.cnblogs.com/ccsx/p/8572735.html

? ?https://www.cnblogs.com/surecheun/p/9694052.html

? ?https://www.cnblogs.com/bw13/p/6549248.html

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容