requests包get響應內容中文亂碼解決方案

2021-10-01 12:53:46 字數 1072 閱讀 5352

python中的編碼

字串在python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。

decode的作用是將其他編碼的字串轉換成unicode編碼,如str1.decode(『gb2312』),表示將gb2312編碼的字串str1轉換成unicode編碼,encode的作用是將unicode編碼轉換成其他編碼的字串,如str2.encode(『gb2312』),表示將unicode編碼的字串str2轉換成gb2312編碼。

因此,轉碼的時候一定要先搞明白,字串str是什麼編碼,然後decode成unicode,然後再encode成其他編碼。

requests中的編碼

先上結論:之所以request的響應內容亂碼,是因為模組中並沒有正確識別出encoding的編碼,而s.txt的結果是依靠encoding的編碼「iso-8859-1」解碼出的結果,所以導致亂碼。

所以正確的邏輯應該這樣:

s = requests.get(

'')

一般可以先判斷出編碼,比如編碼為gb2312,

str

= s.content

可以直接用正確的編碼來解碼。

str

.decode(

'gb2312'

)

那麼知道這個邏輯,接下來就是需要正確判斷網頁編碼就行了,獲取響應html中的charset引數:

"content-type" content=

"text/html; charset=utf-8"

>

但實際上我們可以直接執行encoding為正確編碼,讓response.text正確解碼即可:

response=requests.get(

'www.test.com'

)

requests庫的get方法

安裝requests庫 pip install requests 就像安裝其他庫那樣 get函式原型 requests.get url,params none,kwargs 其中,url是鏈結,params是url中的額外引數,字典或位元組流格式,後面是12個引數,以鍵值對的形式表示,後面詳述。r....

Requests庫的get 方法

第一周學習目標 本週內容分為三個單元 我在安裝requests庫時遇到的問題 2 在cmd視窗輸入python正常 我沒有安裝pip 好像在安裝python的時候自動安裝了pip 3 在cmd視窗輸入 pip install requests,然後系統提示了很多東西,大致意思是說pip版本不夠新,因...

使用requests傳送get請求

基本用法 import requests req requests.get 發起get請求 print req.text 列印響應內容req.ok 檢查返回碼是不是 200 ok 如果是則返回true,否則返回false req.url 檢視請求的url,也就是 req.text 檢視返回的響應內容...