1、爬取某網站內容時,返回的結果為亂碼,如圖:
2、寫在前面的解釋
Requests會基於HTTP頭部響應的編碼做出有根據的推測,當訪問r.text時,Requests會使用其推測的文本編碼。
查看網頁返回的字符集類型:r.apparent_encoding
查看自動判斷的字符集類型:r.encoding
可以看到Requests推測的文本編碼(ISO-8859-1)與源網頁編碼(utf-8) 不一致,因此會導致亂碼問題的出現。
注:源網頁也能直接查看編碼格式,如下圖:
3、解決方法
這里要注意順序,需要先指定r.encoding的編碼格式,再訪問r.text。即第9行代碼必須寫在第10行代碼之前。
(1)方法一:直接指定r.encoding為源網頁的編碼格式
r.encoding="utf-8"
(2)方法二:通過r.apparent_encoding屬性來指定,直接將其值賦給r.encoding
r.encoding = r.apparent_encoding
(3)方法三:通過編碼、解碼的方式
4、亂碼問題解決
--------結束----------
轉發:https://www.cnblogs.com/tufeixiaopengyou/p/14385389.html