python requests 詳細學習content 和text 的區別
阿新 • • 發佈:2019-02-13
之前使用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 型別,可能是返回的最原始的資料,可以理解為尚未渲染過。
不同看法歡迎大家留言討論