request請求返回的內容亂碼


問題:

r = requests.get()

通過r.text得到的響應數據是亂碼

 

原因:

r.text解碼類型:

1)根據響應頭的編碼 Content-Type字段charset 推測 響應的文本編碼 

2)如果HTTP響應中Content-Type字段沒有指定charset,則默認頁面是'ISO-8859-1'編碼,這種解碼方式在解析中文的時候就會出現亂碼

 

這里就是因為響應頭未指定charset,導致出現亂碼

 

解決方式:

r.apparent_encoding:根據響應的網頁內容分析出編碼方式

通過apparent_encoding獲取網頁的編碼后,再用r.encoding指定該編碼,指定編碼后,r.text會根據指定的編碼進行解析網頁

 

r.encoding = r.apparent_encoding
r.text # 這次獲取的內容不會亂碼

 

 

解決辦法+比較詳細的解釋:https://www.cnblogs.com/bw13/p/6549248.html

 

簡潔給出解決辦法:

https://blog.csdn.net/weixin_42625143/article/details/100054416

https://blog.csdn.net/qq_27629199/article/details/90170836

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM