如何使用 Python 的 HTTP 请求库
requests
库是一个流行的 Python 模块,它简化了发出 HTTP 请求的过程。它抽象了处理请求和响应的复杂性,使与 Web 服务和 API 的交互变得更加容易。在本文中,我们将探讨使用 requests
库的基础知识,包括如何发送各种类型的 HTTP 请求和处理响应。
安装请求库
在使用 requests
库之前,您需要先安装它。您可以使用 Python 包管理器 pip
来安装它。在终端中运行以下命令:
pip install requests
发出简单的 GET 请求
最基本的 HTTP 请求是 GET 请求,它从服务器检索数据。以下是使用 requests
库发出 GET 请求的方法:
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())
在这个例子中,我们向 GitHub API 发送一个 GET 请求,并以 JSON 格式打印 HTTP 状态代码和响应内容。
发送 POST 请求
POST 请求用于将数据发送到服务器,例如表单提交。以下是使用 requests
库发送 POST 请求的方法:
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())
在这个例子中,我们向 httpbin.org 测试服务发送一个包含一些表单数据的 POST 请求,并打印响应状态代码和内容。
处理查询参数
有时您需要在请求中包含查询参数。 requests
库允许您以字典形式传递参数,从而使此操作变得简单:
import requests
params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)
在此示例中,我们在 GET 请求中包含查询参数,并打印包含参数的最终 URL。
使用标题
您可能需要在请求中包含自定义标头,例如用于身份验证或指定内容类型。以下是向请求添加标头的方法:
import requests
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())
在这个例子中,我们在对 GitHub API 的请求中包含一个授权标头,并打印状态代码和响应内容。
处理超时和异常
处理网络超时和其他异常等潜在问题非常重要。h2requestsh3 库允许您指定超时和捕获异常:
import requests
from requests.exceptions import RequestException
try:
response = requests.get('https://httpbin.org/delay/5', timeout=3)
response.raise_for_status()
print(response.status_code)
print(response.text)
except RequestException as e:
print(f'An error occurred: {e}')
在这个例子中,我们为请求设置了一个超时并捕获发生的任何异常,如果出现问题则打印错误消息。
结论
requests
库是一款功能强大且用户友好的 Python HTTP 请求工具。无论您是从 API 检索数据、发送表单提交还是处理自定义标头,requests
库都可以让您仅用几行代码轻松执行这些任务。通过掌握本文介绍的基础知识,您将能够在 Python 项目中与 Web 服务和 API 进行交互。