安装与配置requests库
requests库并非Python标准库的一部分,需要单独安装。在终端中执行以下命令:
pip install requests
验证安装是否成功:
import requests
print(requests.__version__)
什么是HTTP请求以及为何选择requests库
HTTP(超文本传输协议)是客户端与服务器之间传输数据的协议。requests是Python第三方库,相比内置的urllib模块,它能极大简化HTTP请求的发送过程。
requests库的核心优势
- 代码简洁易读,上手快速
- 全面支持HTTP方法(GET、POST、PUT、DELETE、PATCH)
- 自动处理JSON数据
- 内置Cookie和会话管理
- 灵活的请求头和参数配置
- 完善的错误与异常处理机制
- 支持代理服务器和SSL证书验证
HTTP核心方法实战示例
GET请求:获取数据
GET请求用于从服务器获取数据,不会修改服务器资源。
import requests
# 简单的GET请求
response = requests.get('https://api.github.com')
print(response.status_code) # 200
print(response.text) # 响应内容
GET请求传递参数
# 通过字典传递参数
params = {
'q': 'python',
'sort': 'stars',
'order': 'desc',
'page': 1
}
response = requests.get('https://api.github.com/search/repositories', params=params)
print(response.url) # 查看最终带参数的URL
POST请求:提交数据
POST请求用于向服务器发送数据并创建新资源。
# POST请求发送表单数据
data = {
'username': 'test_user',
'password': 'secure_password',
'email': 'test@example.com'
}
response = requests.post('https://httpbin.org/post', data=data)
print(response.json())
POST请求发送JSON数据
# 发送JSON格式数据
json_data = {
'title': '新文章',
'body': '文章内容',
'userId': 1
}
response = requests.post(
'https://jsonplaceholder.typicode.com/posts',
json=json_data
)
print(response.json())
PUT请求:更新数据
PUT请求用于完整更新服务器上的现有资源。
update_data = {
'id': 1,
'title': '更新后的标题',
'body': '新的内容',
'userId': 1
}
response = requests.put(
'https://jsonplaceholder.typicode.com/posts/1',
json=update_data
)
print(f"状态码: {response.status_code}")
print(response.json())
PATCH请求:部分更新
PATCH用于对资源进行局部更新。
patch_data = {'title': '部分更新后的标题'}
response = requests.patch(
'https://jsonplaceholder.typicode.com/posts/1',
json=patch_data
)
print(response.json())
DELETE请求:删除数据
DELETE请求用于删除服务器上的资源。
response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(f"删除状态: {response.status_code}")
HTTP请求头操作
请求头包含请求的元数据,可以向服务器传递额外信息。
headers = {
'User-Agent': 'Mozilla