python中的requests,response.text与response.content ,及其编码

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响应内容的头部内容

猜你喜欢

转载自blog.csdn.net/qq_31362767/article/details/81431124