python中response.text 和response.content的區別詳解
1.response.text
– 類型:str
– 解碼類型: 根據HTTP 頭部對響應的編碼作出有根據的推測,推測的文本編碼
– 如何修改編碼方式:response.encoding=”gbk”
2. response.content
– 類型:bytes
– 解碼類型: 沒有指定
– 如何修改編碼方式:response.content.deocde(“utf-8”)
3.獲取網頁源碼的通用方式:
response.content.decode() response.content.decode(“GBK”)
解碼方式可以根據響應頭中找到Content-Type:text/html;charset=utf-8或者網頁源碼中content=”text/html;charset=utf-8”來決定.
response.text
以上三種方法從前往後嘗試,能夠100%的解決所有網頁解碼的問題
所以:更推薦使用**response.content.deocde()**的方式獲取響應的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)
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Python爬蟲之requests庫基本介紹
- python爬蟲之requests庫的使用詳解
- python接口自動化使用requests庫發送http請求
- Python爬蟲Requests庫的使用詳情
- 基於Python中request請求得到的response的屬性問題