App下載

request中response.text 和response.content有什么區(qū)別

猿友 2021-08-03 15:26:20 瀏覽數(shù) (3338)
反饋

在學習request庫的時候,我們會學習到如何使用request發(fā)送一個請求,然后返回一個response對象,剩下的內(nèi)容就是對response對象的解析。response響應(yīng)解析有兩種方式,一種是response.text(),另一種是response.content()。那么這兩種方式有什么區(qū)別呢?接下來小編帶你了解。

1.response.text

- 類型:str

- 解碼類型: 根據(jù)HTTP 頭部對響應(yīng)的編碼作出有根據(jù)的推測,推測的文本編碼

- 如何修改編碼方式:response.encoding=”gbk”

2. response.content

- 類型:bytes

- 解碼類型: 沒有指定

- 如何修改編碼方式:response.content.deocde(“utf-8”)

3.獲取網(wǎng)頁源碼的通用方式:

response.content.decode()
response.content.decode(“GBK”)

解碼方式可以根據(jù)響應(yīng)頭中找到Content-Type:text/html;charset=utf-8或者網(wǎng)頁源碼中content="text/html;charset=utf-8''來決定.

response.text

以上三種方法從前往后嘗試,能夠100%的解決所有網(wǎng)頁解碼的問題

所以:更推薦使用**response.content.deocde()**的方式獲取響應(yīng)的html頁面

補充:python3中requests 常用response

看代碼吧~

import requests
res = requests.get("http://127.0.0.1:9092")

print(res.status_code) # 200
print(res.url) # http://127.0.0.1:9092/
print(res.headers) # {'Content-Type': 'application/json; charset=utf-8', 'Content-Length': '10', 'Date': 'Sat, 22 Dec 2018 13:36:16 GMT', 'Connection': 'keep-alive'}
print(res.cookies) # <RequestsCookieJar[<Cookie cid=hello world for 127.0.0.1/>]>
print(res.text) # 8248154254
print(res.content) # b'8248154254' 寫圖片
print(res.cookies['cid']) # hello world

# 爬取 圖片
r1 = requests.get('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1545496551516&di=8ed19596bc72aa87299ed7f234830128&imgtype=0&src=http%3A%2F%2Fimg5.duitang.com%2Fuploads%2Fitem%2F201107%2F31%2F20110731155631_htMcs.jpg')
b = r1.content
with open('hao.jpg','wb') as f:
    f.write(b)

以上就是response響應(yīng)解析的相關(guān)介紹,希望能給大家一個參考,也希望大家多多支持W3Cschool。


0 人點贊