9 发送请求之处理响应内容
在上一篇中,我们学习了如何使用 requests
库发送网络请求,现在我们将重点讨论如何处理服务器返回的响应内容。在这一部分,我们将覆盖常见的响应内容处理技巧,帮助你更好地理解和利用网络爬虫的能力。
响应对象简介
当我们使用 requests
库发送请求时,服务器会返回一个响应对象,通常称为 Response
对象。这个对象包含了所有关于请求的响应信息,比如响应状态码、响应内容、头部信息等。
下面是发送请求并获取响应的基本示例:
1 | import requests |
在这里,response
就是一个 Response
对象。我们可以通过它来获取更多的信息。
常用的响应内容处理方法
1. 查看响应状态码
响应状态码可以让我们知道请求是否成功。常见的状态码包括:
- 200:请求成功
- 404:页面未找到
- 500:服务器内部错误
你可以通过 response.status_code
获取响应状态码,如下所示:
1 | if response.status_code == 200: |
2. 获取响应内容
请求成功后,我们通常需要处理响应的内容。使用 response.content
可以获取原始的响应内容(字节流),而 response.text
则可以获取解码后的文本内容。两者之间的区别在于:
response.content
:获取字节内容response.text
:获取字符内容(已经根据响应头中的Content-Type
进行解码)
1 | # 获取文本内容 |
3. 响应的头部信息
在很多情况下,响应的头部信息也是非常重要的,比如内容类型、长度、编码方式等。你可以使用 response.headers
获取这些信息,它以字典的形式返回。
1 | # 获取响应头部信息 |
4. 处理JSON响应
如果服务器返回的数据是 JSON 格式,我们可以使用 response.json()
方法将其解析为 Python 字典。这对于 API 请求来说非常有用。
1 | # 发送API请求 |
5. 错误处理
在处理请求时,良好的错误处理是必要的。requests.exceptions
模块提供了多种异常,用于处理请求中的错误。
1 | try: |
小结
在本篇教程中,我们学习了如何处理使用 requests
库发送请求后获得的响应内容,包括查看响应状态码、获取和解析响应内容以及处理常见错误。这些技术将为我们后续的网页解析打下基础。在下一篇文章中,我们将具体讨论如何解析 HTML 文档,以提取我们所需要的信息。
继续保持学习的热情,期待下一次的探索!
9 发送请求之处理响应内容