python中的requests,response.text與response.content ,及其編碼
阿新 • • 發佈:2019-01-06
requests
import requests
response=requests.get(“http://www.baidu.com/“)
一、response的屬性:
print(response) #
response.status_code
http請求的返回狀態,2XX 表示連線成功,3XX 表示跳轉 ,4XX 客戶端錯誤 , 500 伺服器錯誤
response.text
http響應內容的字串(str)形式,請求url對應的頁面內容
response=requests.get("http://www.baidu.com/")
print(response .text)
打印出的內容含有亂碼:
<title>ç™¾åº¦ä¸€ä¸‹ï¼Œä½ å°±çŸ¥é“</title>
修改如下, 改變下載得到的頁面的編碼,就可以正常打印出”友好的”文字了:
response.encoding="utf-8"
print(response.text)
小結 : 更改編碼使用:response.encoding=”utf-8” 或者 response.encoding=”gbk”
具體要看你請求的網頁是用什麼方式編碼的,針對不同情況用對應的編碼方式.
比如下面這個例子, 不用編碼也可以列印正常文字 ,如果你還是用response.encoding=”utf-8” ,反而會出現亂碼
response =requests.get("http://www.qq.com/")
print(response.text)
------------------或者-----------------------
response =requests.get("http://www.qq.com/")
response.encoding="gbk"
print(response.text)
response.content
HTTP響應內容的二進位制(bytes)形式
response =requests.get("http://www.baidu.com/")
# print(response.content) #打印出的是二進位制形式
print(response.content.decode("utf-8"))
response =requests.get("http://www.qq.com/")
# print(response.content) #打印出的是二進位制形式
print(response.content.decode("gbk"))
小結:更改編碼使用 response.content.deocde(“utf8”)
更推薦使用response.content.deocde()的方式獲取響應的html頁面.
response.encoding
從HTTP header中猜測的響應內容編碼方式
response.apparent_encoding
從內容分析出的響應內容的編碼方式(備選編碼方式)
response.headers
http響應內容的頭部內容