2016年8月29日 星期一

Python request() 亂碼

參考至:
http://sh3ll.me/2014/06/18/python-requests-encoding/

1.當其他網頁用request()都可以正常印出中文
但卻有些特定網頁會出現亂碼????

那是因為:requests 是通過http header 猜測頁面編碼,如果header中不存在charset,就會認為編碼為ISO-8859-1,所以如果返回的內容中,沒有在指定頁面編碼的話,就會出現亂碼

2.舉例
- 因為request()找不到編碼,所以亂猜出現錯誤



















3.解決方法
- If you can take advantage of non-HTTP knowledge to make a better guess at the encoding, you should set r.encoding appropriately before accessing this property.
在訪問 res.text屬性前先設置下正確的編碼:

res.encoding = 'utf-8'

如下圖:


沒有留言:

張貼留言