1. 程式人生 > >python requests 詳細學習content 和text 的區別

python requests 詳細學習content 和text 的區別

之前使用requests 不求甚解,一直使用content輸出文字。閱讀文件後記錄如下:

import requests
r=requests.get('http://www.baidu.com')
print r.content
print r.text

你會發現,content輸出的文字沒問題,但是text輸出的文字貌似是亂碼。

深究下,我們使用

print type(r.content)
print type(r.text)

content 輸出型別為 str
text 輸出型別為 unicode

使用
print r.encoding

輸出 ISO-8859-1 編碼

屬於單位元組編碼,最多能表示的字元範圍是0-255,應用於英文系列。比如,字母’a’的編碼為0x61=97。

很明顯,iso8859-1編碼表示的字元範圍很窄,無法表示中文字元。

我們通過指定編碼

r.encoding='utf-8'
print r.text

此時,剛剛的亂碼已經可以正確顯示了。

至此,我們大致可以說

content返回的是str 型別,就是我們眼睛所看到的內容,被瀏覽器渲染過。
text返回的是unicode 型別,可能是返回的最原始的資料,可以理解為尚未渲染過。

不同看法歡迎大家留言討論