問題:
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