一个轻量的 ASGI 框架与工具包,用于用 Python 构建异步 Web 服务。
ross/requests-futures
为 Python requests 库提供的轻量扩展,基于 concurrent.futures 异步发送 HTTP 请求。
- Star
- 2,222
- Fork
- 158
- 未关闭 Issue
- 1
- 最近提交
- 16天前
这是什么?
requests-futures 为常用的 Python requests 库增加了异步调用能力。FuturesSession 不会在每次请求时阻塞,而是返回 Future 对象,请求在后台执行,需要响应时再调用 result() 获取。除返回值外,其 API 与 requests.Session 保持一致,异常会在 result() 时抛出。
默认使用包含 8 个工作线程的 ThreadPoolExecutor,也可以传入 ProcessPoolExecutor 改用多进程执行。将会话用作上下文管理器时,退出代码块会取消所有尚未开始的排队请求。库还支持为 future 附加自定义信息,并提供 hooks 作为已弃用 background_callback 的替代。
默认执行器中的多个线程共享同一个 requests.Session,而 Session 并非线程安全,因此在并发请求中修改共享的 cookie 或 headers 需要谨慎。需要 Python 3.10 或更高版本。
核心功能
- 01沿用 requests.Session 的熟悉 API,返回 Future 对象。
- 02默认使用 8 个工作线程的 ThreadPoolExecutor,也支持 ProcessPoolExecutor。
- 03会话关闭时取消尚未开始执行的排队请求。
- 04可为 future 附加自定义数据,便于区分各个请求。
- 05提供 hooks,用于替代已弃用的 background_callback。
适用场景
- 在 Python 脚本中并行抓取大量相互独立的 URL。
- 在现有基于 requests 的代码中以最小改动加入后台 HTTP 调用。
- 当单个请求内存占用较高时,使用进程池批量执行大量请求。
快速上手
- 1
使用 pip 安装该包
pip install requests-futures - 2
创建 FuturesSession 发送请求;对每个 future 调用 result() 获取响应
使用前须知
- 需要 Python 3.10 或更高版本。
- 默认执行器在多个线程间共享同一个 requests.Session,而 Session 不是线程安全的。
- 项目元数据中未明确标注许可证。
标签
常见问题
- requests-futures 是什么?
- 为 Python requests 库提供的轻量扩展,基于 concurrent.futures 异步发送 HTTP 请求。 requests-futures 为常用的 Python requests 库增加了异步调用能力。FuturesSession 不会在每次请求时阻塞,而是返回 Future 对象,请求在后台执行,需要响应时再调用 result() 获取。除返回值外,其 API 与 requests.Session 保持一致,异常会在 result() 时抛出。
- requests-futures 可以免费使用吗?用的什么许可证?
- requests-futures 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- requests-futures 还在维护吗?
- 活跃维护中。requests-futures 最近一次提交是在 2026年10月5日。
- requests-futures 适合用来做什么?
- 在 Python 脚本中并行抓取大量相互独立的 URL。 在现有基于 requests 的代码中以最小改动加入后台 HTTP 调用。 当单个请求内存占用较高时,使用进程池批量执行大量请求。
- requests-futures 怎么安装和运行?
- 使用 pip 安装该包: pip install requests-futures 创建 FuturesSession 发送请求;对每个 future 调用 result() 获取响应
- 在哪里获取 requests-futures?
- 源代码和安装说明在 GitHub 上:https://github.com/ross/requests-futures
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一款支持 TLS 的交互式拦截 HTTP 代理,提供终端、命令行和 Web 三种界面,用于查看 HTTP/1、HTTP/2 和 WebSocket 流量。
为 AI 助手提供 39 个市场数据、技术分析、选股筛选、回测与舆情工具的 MCP 服务器。
一个快速、易用、类 Flask 路由风格的 C++ 微框架,用于构建 HTTP 和 WebSocket 服务。
用于构建面向客户的 AI 智能体的 Python 框架,通过每轮对话动态收窄上下文,使智能体稳定遵循业务规则与流程。
用 Python 构建网页界面的框架,无需编写 HTML、CSS 或 JavaScript。