返回工具集
游客今日剩余 5 / 5 次免费使用 立即登录
爬虫工具库 · Curl 转换

Curl 转 Feapder 爬虫

将浏览器复制的 curl 命令,一键转换为 Python requests 或 Feapder 爬虫代码。

输出格式:
CURL
Python · feapder

粘贴 curl 命令并点击转换

示例命令

点击任意卡片加载到编辑器

支持的 curl 参数

-X / --request指定 HTTP 方法 (GET, POST, PUT...)
-H / --header添加请求头
-d / --data-raw发送 POST 数据体
--data-urlencode表单编码数据
-b / --cookie设置 Cookie
-u / --userHTTP Basic Auth(user:pass)
-A / --user-agent设置 User-Agent
-e / --referer设置 Referer 头
-L跟随重定向(转换时忽略)
--compressedGzip 压缩(转换时忽略)
提示:parse 方法中可使用 response.xpath() / response.json() 解析数据。

关于 Curl 命令转换工具

在调试 API 或通过浏览器 DevTools 抓包时,curl 命令是最常见的导出格式。但手动将其翻译为 Python 代码既耗时又容易出错,尤其在处理复杂请求头、Cookie 或认证信息时。

本工具自动解析 curl 命令,生成可直接运行的 Python 代码,支持 requests 库和 feapder 爬虫框架,完整保留所有请求头、请求体、认证信息和 HTTP 方法。

使用方法

  • 1. 打开浏览器开发者工具 (F12) → Network 面板 → 右键任意请求 → "复制为 cURL"
  • 2. 将 curl 命令粘贴到左侧输入框
  • 3. 选择输出格式(requests 或 feapder),点击转换或按 Ctrl+Enter

典型生产场景

快速调试带认证的 API

从浏览器 DevTools 复制包含 Bearer Token 或 HTTP Basic Auth 的 curl,一键生成 Python 代码,省去手动拼接 headers 和 auth 参数的时间。生成的 requests 代码可直接在 Jupyter Notebook 或终端中执行。

批量迁移 API 调用脚本

当需要将多个 API 端点从文档中的 curl 示例迁移到 Python 自动化脚本时,依次转换每个端点的 curl 命令,粘贴为独立函数即可快速搭建 API 测试框架。

生成 feapder 爬虫模板

使用 feapder 模式将目标网站的任意请求 curl 转换为 feapder.AirSpider 类,完整保留原始请求头和认证信息,直接作为爬虫项目的起始模板,在 parse 方法中编写数据提取逻辑即可上线。

复现问题与协助定位

同事或社区通过 curl 命令报告 API 问题时,用本工具生成 Python 等价代码,在本地调试脚本中执行,可以快速确认问题根因,避免 curl 和 Python 行为差异导致的误判。

构建 API 回归测试

将 Postman Collection 或文档中的 curl 示例批量转换为 requests 代码后,集成到 pytest 或 GitHub Actions 中,实现 API 接口的自动化回归测试,无需手写冗长的 requests 调用代码。

认证与凭据安全性

curl 命令中常见的认证方式有三种:HTTP Basic Auth(-u 参数)直接编码为 requests 的 auth 元组;Bearer Token(-H 'Authorization: Bearer ...')作为普通请求头保留;Cookie/Session(-b 参数)以 Cookie 请求头形式传递。转换时所有凭据会以明文形式出现在生成的 Python 代码中,需注意代码的安全存放。

生产建议:永远不要把包含真实凭据的生成代码提交到 Git 仓库。推荐使用 os.environ.get("API_KEY") 替换硬编码的 Token,或用 python-dotenv 从 .env 文件加载敏感信息。feapder 项目建议在 settings 或 middleware 层集中管理认证配置,而不是在每个 Request 里硬编码凭据。

feapder 模式下,auth 凭据不会被直接注入请求,而是在代码中生成注释提示。这是有意为之——feapder 框架更推荐通过 download_midware 中间件统一处理认证,避免在每个 Request 构造时重复声明,也便于在正式环境和测试环境之间切换凭据配置。

常见坑点与排查

  • Content-Type 未声明导致数据格式误判:如果 curl 命令没有 -H 'Content-Type: application/json' 但数据体是合法 JSON,转换器会尝试自动推断。但并非所有 API 都接受自动推断的结果。如果生成代码的请求返回 415 或解析错误,请检查 Content-Type 请求头是否缺失。
  • Shell 变量未被展开:如果 curl 命令中包含 shell 变量(如 $API_HOST 或 $),解析器不会做变量替换,会将其原样保留为字面字符串。粘贴前请确保 curl 命令是完整展开后的版本。
  • 重定向行为差异:原始 curl 命令中的 -L 参数表示跟随重定向,转换后的 requests 代码默认自动跟随重定向(allow_redirects=True),因此该参数会被忽略。如果原始请求依赖特定的重定向行为(如拦截 302),需在生成代码中手动设置 allow_redirects=False。

常见问题