Python HTTP 请求:requests / httpx / aiohttp 完整对比

小飞兽 Python 5 次阅读 2026-07-24

requests是最经典的Python HTTP库,httpx支持HTTP/2和异步,aiohttp适合高并发爬虫。

requests:同步请求

requests.get()发送GET请求,r.json()自动解析JSON。带参数用params,POST用json参数。timeout控制超时,proxies设置代理。HTTPBasicAuth或Bearer Token处理认证。

httpx:同步+异步

httpx.Client()同步用法与requests几乎相同。httpx.AsyncClient()异步用法需要asyncio配合,适合需要HTTP/2或流式响应的场景。

aiohttp:纯异步

aiohttp.ClientSession()创建会话,asyncio.gather()并发执行多个请求。适合大量并发请求的高并发爬虫或API聚合服务。

运行效果

requests同步:顺序执行,总耗时是各请求之和。httpx/aiohttp异步:并发执行,总耗时接近最慢的单个请求。

常见问题

Q1: 三者怎么选?简单脚本用requests,需要HTTP/2或异步用httpx,高并发爬虫用aiohttp。

Q2: SSL证书错误怎么办?verify=False仅测试用,生产环境要配置正确的证书。

延伸阅读

  • Python API设计
  • Python异步编程
  • Python爬虫入门

---

作者:小马 | 绍大技术网 shaoda.net