Python requests 響應內容中文亂碼問題解決方案


方案一:requests請求成功時,設置它的編碼

1 def get_one(ur1):
2     res = requests.get(ur1)
3     res.encoding = '2312'    #編碼格式
4     if res.status_code == 200:
5         return res.text
6     return None

注:前提是知道它的編碼,一般通過鼠標右鍵網頁就可以查看網頁原代碼

方案二:利用apparent_encoding

1 res.encoding = res.apparent_encoding if res.encoding == 'IS0-8859-1' else res.encoding
2 print(res.apparent_encoding)

注:apparent_encoding本質上是requests本身對網頁源碼的猜測,如果猜不到,會返回None

方案三:先解成二進制,之后再轉成想要的編碼方式

1 res.content.decode("utf-8", "ignore").encode("gbk", "ignore")
2 print(res.text)

方案四:修改headers里的Accept-Encoding參數,如下:

1 headers = {'Accept-Encoding':'deflate'}

 


免責聲明!

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



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