1.爲什麼有時候request會出現請求的內容中文亂碼
以國家統計局的[http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/]爲例,開發者模式打開可以看到 Conten-Type沒有指定默認的編碼。 而requests使用get請求時候,response默認使用iso-8859-1編碼對消息體進行編碼,傳送數據給客戶端。
(大部分網頁是有指定編碼的)。
2. 解決方法
1.自行設置
查看該網頁的網頁源代碼,還以上面國家統計局的連接爲例,搜索charset的編碼。然後在代碼中指定它的編碼格式,重新打印相應內容的text,這次中文就不會亂碼問題了。
res = requests.get(url, headers = header)
res.encoding = ‘gb2312’
pritn(res.text)
2.利用apparent_encoding
res = requests.get(url, headers = header)
res.encoding = res.apparent_encoding
pritn(res.text)