12 使用Requests库处理响应的内容

在上一篇文章中,我们学习了如何使用 Requests 库发起 POST 请求。在获得响应后,处理这一响应的内容是我们进行网页访问自动化的关键步骤。本节将着重于如何有效地处理响应内容,包括获取响应文本、JSON 数据和其他重要的信息。

1. 获取响应文本

当我们发起请求并得到了响应后,最基本的操作是获取响应的文本内容。Requests 库提供了简便的方法来实现这一点。

1
2
3
4
5
6
7
8
9
10
import requests

# 发起 POST 请求
url = 'https://httpbin.org/post'
data = {'key': 'value'}
response = requests.post(url, data=data)

# 获取响应文本
response_text = response.text
print(response_text)

在这个例子中,我们向 https://httpbin.org/post 发起了一个 POST 请求,并打印了服务器返回的响应文本。response.text 将返回一个字符串,表示响应的内容。

2. 获取 JSON 数据

如果服务器返回的数据是 JSON 格式,我们可以直接使用 response.json() 方法来解析它。

1
2
3
4
5
6
7
8
9
10
11
12
import requests

# 发起 GET 请求
url = 'https://jsonplaceholder.typicode.com/posts/1'
response = requests.get(url)

# 获取 JSON 数据
json_data = response.json()
print(json_data)

# 访问具体字段
print(f"Title: {json_data['title']}")

在上面的代码中,我们从一个示例 API 获取了一篇文章的详细信息,并访问了其中的“标题”字段。使用 response.json() 可以方便地解析 JSON 格式的数据,使得后续数据处理更为简单。

3. 检查响应状态

在处理响应时,检查请求的状态码是非常重要的。Requests 库为我们提供了简单的方法来检查请求是否成功。

1
2
3
4
5
6
7
8
9
10
import requests

response = requests.get('https://jsonplaceholder.typicode.com/posts/1')

# 检查状态码
if response.status_code == 200:
print("请求成功!")
print(response.json())
else:
print(f"请求失败,状态码:{response.status_code}")

在这个例子中,我们检查了响应的状态码。如果状态码是 200,表示请求成功;否则,我们输出失败的状态码。

4. 处理响应头

有时,响应头也包含着重要的信息,例如内容类型、服务器信息等。可以通过 response.headers 来访问这些头部信息。

1
2
3
4
5
6
7
import requests

response = requests.get('https://jsonplaceholder.typicode.com/posts/1')

# 获取响应头
headers = response.headers
print("内容类型:", headers['Content-Type'])

在这段代码中,我们获取并打印出响应的内容类型,了解返回的数据格式。

5. 处理异常

在处理网络请求时,可能会发生各种异常,比如请求超时、连接错误等。使用 try...except 可以帮助我们捕捉这些异常。

1
2
3
4
5
6
7
8
9
10
11
12
13
import requests

url = 'https://jsonplaceholder.typicode.com/posts/1'

try:
response = requests.get(url, timeout=5)
response.raise_for_status() # 检查请求是否成功
data = response.json()
print(data)
except requests.exceptions.HTTPError as http_err:
print(f"HTTP 错误: {http_err}")
except requests.exceptions.RequestException as req_err:
print(f"请求错误: {req_err}")

在上述例子中,我们设置了请求超时,并且用 raise_for_status() 方法来检查响应状态。如果发生错误,我们能够捕捉并输出相应的错误信息。

结论

我们学习了如何处理来自服务器的响应,包括获取文本、解析 JSON 和处理异常等。掌握这些技能将使我们在网页访问自动化中更加得心应手。下一篇文章中,我们将介绍如何使用 BeautifulSoup 库抓取网页数据,敬请期待!

12 使用Requests库处理响应的内容

https://zglg.work/web-python-auto/12/

作者

IT教程网(郭震)

发布于

2024-08-11

更新于

2024-08-11

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论