Requests
Python 生态中最流行的 HTTP 客户端库,以简洁优雅的 API 封装 HTTP/1.1 请求,支持会话、Cookie 持久化、认证、代理、流式下载等特性,每周下载量约 3 亿次。
爱鲜报评分
0.0
0 人评分
55k
星数
否
中文
Python
主语言
是
活跃
795
贡献者
人工分析
EDITORIAL推荐理由
Requests 是 Python 开发者绕不开的基础设施级库,API 设计被大量后续库借鉴。它把 URL 参数、表单编码、JSON 解析、TLS 校验等繁琐细节收敛成几行代码,稳定性和兼容性经过十余年检验。无论是写爬虫、调接口还是做自动化脚本,它都是默认首选。
适用场景
- 调用 REST API 与第三方服务
- 编写网络爬虫与数据采集脚本
- 自动化测试中的接口请求
- 运维与 CI 脚本中的 HTTP 交互
- 文件上传下载与流式传输
优点
- API 极其简洁,学习成本低
- 功能完整:会话、Cookie、认证、代理、超时、流式下载一应俱全
- 社区庞大,文档与示例资源丰富
- 由 PSF 维护,长期稳定可靠
- 被数百万仓库依赖,生态兼容性好
缺点
- 仅支持同步阻塞调用,不适合高并发异步场景
- 不支持 HTTP/2,需要 httpx 等替代方案
- 官方仅支持 Python 3.10 及以上版本
- 复杂重试与连接池调优需借助 urllib3 或额外封装
上手难度
入门
Requests 简介
Requests 是 Python 中最广为人知的 HTTP 客户端库,官方定位是「简单而优雅的 HTTP 库」。它把 HTTP/1.1 请求中繁琐的细节——URL 查询参数拼接、表单编码、JSON 解析、TLS 校验——都收敛到几行直观的代码里。
import requests
r = requests.get('https://httpbin.org/basic-auth/user/pass', auth=('user', 'pass'))
print(r.status_code) # 200
print(r.json()) # {'authenticated': True, ...}
据官方说明,Requests 每周下载量约 3 亿次,被超过 400 万个仓库依赖,是 Python 生态中事实上的标准 HTTP 工具。
核心特性
- 会话与连接复用:
Session对象保持 Cookie 持久化,并支持 Keep-Alive 与连接池 - 认证支持:Basic、Digest 认证开箱即用
- TLS/SSL 校验:默认启用浏览器风格的证书验证
- 内容处理:自动解压与解码响应内容,
r.json()直接解析 JSON - 文件上传:支持 multipart 多部分表单上传
- 代理与超时:支持 SOCKS 代理、连接超时设置
- 流式下载:通过
stream=True分块读取大文件 - 国际化:正确处理国际化域名与 URL
安装与版本
Requests 发布在 PyPI 上,可直接通过 pip 安装:
$ python -m pip install requests
官方目前支持 Python 3.10 及以上版本。
适用与取舍
Requests 采用同步阻塞模型,适合脚本、爬虫、接口调用与自动化测试等场景;若需要异步高并发或 HTTP/2 支持,可考虑 httpx、aiohttp 等替代方案。对于绝大多数日常 HTTP 任务,Requests 依然是上手最快、最稳妥的选择。
评论
- 暂无评论,来写第一条吧。