爬虫之response响应对象
示例代码:
import requests
# 目标url
url = 'https://www.baidu.com'
# 向目标url发送get请求
response = requests.get(url)
# 打印响应内容
# print(response.text)
print(response.content) # 注意这里!
运行效果:

观察上边代码运行结果发现,有好多乱码;这是因为编解码使用的字符集不同早造成的;我们尝试使用下边的办法来解决中文乱码问题 【手动设置编码格式 response.encoding = 'utf8' , 此时写成'utf-8'也是可以的】
import requests
# 目标url
url = 'https://www.baidu.com'
# 向目标url发送get请求
response = requests.get(url)
# 打印响应内容
# print(response.text)
print(response.content.decode()) # 注意这里!
运行效果:

- response.text是requests模块按照chardet模块推测出的编码字符集进行解码的结果
- 网络传输的字符串都是bytes类型的,所以response.text = response.content.decode('推测出的编码字符集')
- 我们可以在网页源码中搜索
charset,尝试参考该编码字符集,注意存在不准确的情况
1.1 response.text 和response.content的区别: 【response.content是存储的bytes类型的响应源码,可以进行decode操作】
- response.text
- 类型:str
- 解码类型: requests模块自动根据HTTP 头部对响应的编码作出有根据的推测,推测的文本编码
- response.content
- 类型:bytes
- 解码类型: 没有指定
1.2 通过对response.content进行decode,来解决中文乱码
response.content.decode()默认utf-8response.content.decode("GBK")- 常见的编码字符集
- utf-8
- gbk
- gb2312
- ascii (读音:阿斯克码)
- iso-8859-1
1.3 response响应对象的其它常用属性或方法
response = requests.get(url)中response是发送请求获取的响应对象;response响应对象中除了text、content获取响应内容以外还有其它常用的属性或方法:
response.url响应的url;有时候响应的url和请求的url并不一致response.status_code响应状态码response.request.headers响应对应的请求头response.headers响应头response.request._cookies响应对应请求的cookie;返回cookieJar类型response.cookies响应的cookie(经过了set-cookie动作;返回cookieJar类型response.json()自动将json字符串类型的响应内容转换为python对象(dict or list)
import requests
# 目标url
url = 'https://www.baidu.com'
# 向目标url发送get请求
response = requests.get(url)
# 打印响应内容
# print(response.text)
# print(response.content.decode()) # 注意这里!
print(response.url) # 打印响应的url
print(response.status_code) # 打印响应的状态码
print(response.request.headers) # 打印响应对象的请求头
print(response.headers) # 打印响应头
print(response.request._cookies) # 打印请求携带的cookies
print(response.cookies) # 打印响应中携带的cookies
print(response.json) # 此时json后面不能放()
运行效果:

本文详细介绍了Python爬虫中Response对象的使用,包括如何通过response.content获取原始字节数据,使用decode方法处理中文乱码问题。同时,讲解了response对象的其他常见属性,如response.url、status_code、headers等,帮助理解HTTP响应的各个部分。通过实例代码展示了如何解析和处理HTTP响应内容,以解决实际爬虫过程中遇到的问题。
4463

被折叠的 条评论
为什么被折叠?



