Python requests库使用指南(python+requests库使用指南中文版)

Python requests库使用指南(python+requests库使用指南中文版)

编程文章jaq1232025-05-09 6:11:206A+A-

Python 的 requests 库是一个简单易用的 HTTP 客户端库,广泛用于发送 HTTP 请求和处理响应。以下是它的核心用法和常见场景的示例:


1. 安装 requests

bash

pip install requests


2. 基本 GET 请求

python

import requests


response = requests.get("https://api.example.com/data")

print(response.status_code) # 状态码(200表示成功)

print(response.text) # 响应内容(文本格式)

print(response.json()) # 如果响应是 JSON,直接解析为字典


3. 传递 URL 参数

使用 params 参数自动编码查询字符串:

python

params = {"key1": "value1", "key2": "value2"}

response = requests.get("https://api.example.com/data", params=params)


4. 基本 POST 请求

发送表单数据或 JSON 数据:

python

# 表单数据

data = {"key": "value"}

response = requests.post("https://api.example.com/post", data=data)


# JSON 数据

json_data = {"key": "value"}

response = requests.post("https://api.example.com/post", json=json_data)


5. 设置请求头

python

headers = {"User-Agent": "my-app/1.0", "Authorization": "Bearer YOUR_TOKEN"}

response = requests.get("https://api.example.com/data", headers=headers)


6. 处理响应

python

response = requests.get(...)


# 检查请求是否成功

response.raise_for_status() # 如果状态码不是200,抛出异常


# 获取内容

text_content = response.text # 文本格式

binary_content = response.content # 二进制格式(如图片)

json_content = response.json() # 解析为字典(需响应是JSON)


# 获取响应头

print(response.headers["Content-Type"])


7. 处理超时

设置请求超时时间(秒):

python

try:

response = requests.get("https://api.example.com/data", timeout=5)

except requests.exceptions.Timeout:

print("请求超时!")


8. 会话保持(Session)

复用 TCP 连接,保留 Cookies 和头信息:

python

with requests.Session() as session:

session.headers.update({"User-Agent": "my-app/1.0"})

session.get("https://api.example.com/login", params={"user": "name", "pwd": "secret"})

response = session.get("https://api.example.com/protected-data")


9. 处理文件上传

python

files = {"file": open("example.txt", "rb")}

response = requests.post("https://api.example.com/upload", files=files)


10. 代理设置

python

proxies = {

"http": "http://10.10.1.10:3128",

"https": "http://10.10.1.10:1080",

}

response = requests.get("http://example.com", proxies=proxies)


11. 错误处理

python

try:

response = requests.get("https://api.example.com/data")

response.raise_for_status() # 检查 HTTP 错误(4xx/5xx)

except requests.exceptions.HTTPError as http_err:

print(f"HTTP错误: {http_err}")

except requests.exceptions.RequestException as err:

print(f"请求异常: {err}")


12. 禁用 SSL 验证(仅测试环境)

python

response = requests.get("https://api.example.com", verify=False)


13. 重定向控制

禁用自动重定向:

python

response = requests.get("https://example.com", allow_redirects=False)


14. 流式下载大文件

分块读取响应内容,避免内存占用过高:

python

response = requests.get("https://example.com/large-file", stream=True)

with open("large_file.zip", "wb") as f:

for chunk in response.iter_content(chunk_size=8192):

f.write(chunk)


总结

requests 提供了简洁的 API 满足大多数 HTTP 交互需求,适合快速开发。对于高频次或异步场景,可考虑 aiohttp(异步)或 httpx(兼容同步/异步)

点击这里复制本文地址 以上内容由jaq123整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

苍茫编程网 © All Rights Reserved.  蜀ICP备2024111239号-21