curl_cffi Python 指纹模拟 HTTP 客户端源码

curl_cffi Python 指纹模拟 HTTP 客户端源码

  • 全站源码免费
  • 每日/微信/10次解锁
  • 每日/IP/100次解锁
  • 不限制搬运
  • 可有偿提供搭建服务
  • 自动检测网盘是否失效
资源下载
免费资源
立即下载

cover

这份源码是一个 Python 的 HTTP 客户端库,核心亮点是能模拟主流浏览器的 TLS/JA3 和 HTTP/2 指纹,底层基于 curl-impersonate,对外提供和 requests 几乎一致的调用方式。

源码简介

curl_cffi 是 curl-impersonate 的 Python 绑定(通过 cffi 调用),目标是做出一个能”伪装”成真实浏览器的 HTTP 客户端。它既提供贴近 requests 风格的高层 API(get/post/Session),也有基于 libcurl 的底层 curl API,并附带 asyncio 异步支持、WebSocket 和独立的 curl-cffi 命令行工具。项目 MIT 协议开源,预编译二进制开箱即用,支持 Linux、macOS、Windows。

适用场景

  1. Python 爬虫与采集场景中规避 TLS/JA3 指纹识别
  2. 需要 HTTP/2、HTTP/3 或 WebSocket 的异步请求客户端
  3. 学习 cffi 调用原生库、指纹模拟与请求库架构实现

技术栈与运行环境

Python 3.10+,仅两个运行时依赖 cffi>=2.0.0 与 certifi(pyproject.toml 标注)。

底层依赖 curl-impersonate 提供的 libcurl 预编译动态库(Windows 下打包 libcurl.dll)。

提供 cli / extra / dev 等可选依赖组(rich 用于彩色命令行、readability-lxml 等用于内容提取)。

支持 CPython 3.10–3.14 及 free-threading。安装:pip install curl_cffi。

功能亮点

  1. 浏览器指纹模拟:支持 Chrome / Safari / Firefox 等预设的 TLS/JA3 与 HTTP/2 指纹(impersonate 参数),也可自定义 ja3 / akamai / extra_fp
  1. 双 API 设计:高层 requests 风格(curl_cffi.get / Session)+ 底层 libcurl 封装(curl.py),迁移成本低
  1. 异步与并发:AsyncSession 支持 asyncio,可配合代理轮换做高并发请求
  1. 协议覆盖全:HTTP/2、HTTP/3(v0.15 起含 UDP socks5 代理与指纹)、WebSocket(同步 + 异步 ws_connect)
  1. 内置命令行工具:curl-cffi CLI(get / list / update 等子命令),可用于调试 URL 与指纹
  1. 配套模块完善:requests/ 下含 cookies / headers / cache / impersonate / session / websockets 等,指纹库 fingerprints.py 含 37 个以上预设

安装与部署提示

本仓库为 Python 库源码,安装即从源码构建:先 make preprocess 生成预处理文件,再 pip install .(需 cffi 与 curl-impersonate 动态库)。

普通用户直接 pip install curl_cffi 拉取预编译 wheel 即可,无需本地编译。

CLI 需额外装 curl_cffi[cli](rich)才有彩色输出。文档在 docs/(Sphinx + readthedocs),示例在 examples/。

截图与演示说明

– examples/ 目录:async_session.py、websocket 示例等可直接运行的代码片段

– docs/ 文档:quick_start.rst、impersonate/ 指纹说明、websockets.rst、cli/ 命令行指南

– benchmark/ 目录:benchmark.py、server.py 与压测脚本、single_worker.csv / multiple_workers.csv 对比数据

– curl-cffi CLI:终端运行 curl-cffi get tls.browserleaks.com/json --impersonate chrome 观察返回的指纹哈希

常见问题

  1. 和 requests / httpx 有什么区别? curl_cffi 的 API 刻意贴近 requests,但多了浏览器指纹模拟与 HTTP/2、HTTP/3、WebSocket 支持,适合被反爬机制拦截的场景;requests 不支持指纹与 HTTP/2,httpx 支持 HTTP/2 但不做指纹伪装。
  1. 需要自己编译 libcurl 吗? 不需要。PyPI 上的预编译 wheel 已内置 libcurl-impersonate 动态库,Windows 包还带 libcurl.dll,直接 pip 安装即可使用。

安全风险提示

特别提示:本源码未检测安全风险文件,下载后请务必进行安全审计,删除恶意代码后再部署使用!

下载说明

本源码包为 GitHub 公开仓库快照(MIT 协议),已打包为无密码 zip,含完整提交历史(.git)。

项目开源地址:https://github.com/lexiforest/curl_cffi

下载后建议优先 pip install curl_cffi 使用预编译包;如需研读源码与构建,参照 README 的 make preprocess + pip install 流程。

资源下载
下载价格免费
本文章资源https://www.aosen.cc/mianfei2942.html来源于互联网,如存在侵权,请联系我们立马删除!
0
显示验证码