requests的response.text与response.content
response的属性:
1 | import requests |
1. response.status_code
http请求的返回状态,2XX 表示连接成功,3XX 表示跳转 , 4XX 客户端错误 , 500 服务器错误
2. response.text
http响应内容的 字符串(str) 形式,请求url对应的页面内容
1 | response=requests.get("http://www.baidu.com/") |
打印出的内容含有乱码:
1 | # <title>ç¾åº¦ä¸ä¸ï¼ä½ å°±ç¥é</title> |
修改如下, 改变下载得到的页面的编码,就可以正常打印出”友好的”文本了:
1 | response.encoding="utf-8" |
小结 : 更改编码使用:response.encoding=”utf-8” 或者 response.encoding=”gbk”
具体要看你请求的网页是用什么方式编码的,针对不同情况用对应的编码方式.
比如下面这个例子, 不用编码也可以打印正常文本 ,如果你还是用response.encoding=”utf-8” ,反而会出现乱码
1 | # 没有乱码: |
3. response.content
HTTP响应内容的 二进制(bytes) 形式
1 | response =requests.get("http://www.baidu.com/") |
1 | response =requests.get("http://www.qq.com/") |
小结:更改编码使用 response.content.deocde(“utf8”)
更推荐使用response.content.deocde()的方式获取响应的html页面.
4. response.encoding
从HTTP header中猜测的响应内容编码方式
5. response.apparent_encoding
从内容分析出的响应内容的编码方式(备选编码方式)
6. response.headers
http响应内容的头部内容