一个面向个人使用的 CLI 小工具,用于抓取并整理自己正在使用的 API 站点模型、分组与计费配置,方便横向对比不同站点的模型可用性与性价比。
当前版本提供一个本地运行的命令行入口 main.py 和前端面板 panel/。它会读取你的站点配置,抓取目标站点可访问的模型与分组相关 JSON 数据,清洗成便于继续分析的统一结果文件,并在补充充值/套餐信息后打开本地面板进行筛选和对比。
这个项目适合以下场景:
- 对比多个 API 站点的模型可用性
- 整理不同站点的分组、倍率和计费信息
- 为后续人工比价、筛选和记录提供基础数据
当前版本默认在本机启动静态网页面板,不上传数据,也不提供在线服务。
- 读取项目根
site.json - 交互式新增站点配置
- 调用 script/ 下的抓取与清洗逻辑
- 输出抓取进度、失败原因与汇总结果
- 在抓取失败时提示对应
raw/目录,允许手动补充 JSON 后重新清洗 - 引导编辑各站点目录下的
site/<站点名>/topup+plans.json,校验充值/套餐 JSON 格式 - 启动本地前端服务并自动打开 panel/ 面板
- 在一轮结束后继续驻留终端,支持继续新增站点或直接回车退出
- 推荐 Python:3.12
- 最低支持版本:Python 3.10
python -m pip install -r requirements.txt复制 site.json.example 为 site.json,然后填写你自己有权访问的站点配置。
示例:
[
{
"url": "https://api.example.com",
"name": "example-site",
"new-api-user": "",
"token": "",
"Authorization": ""
}
]字段说明:
url:站点根地址,必须包含http://或https://name:站点显示名,同时会用于输出目录命名;程序会按site.json中的数组顺序依次处理站点new-api-user:可选,目标站点登录态。配置后程序会作为New-Api-User请求头发送,用于访问登录后接口。该字段属于敏感信息,不要提交真实值到公开仓库。token:可选,目标站点授权令牌。配置后程序会作为Authorization: Bearer <token>请求头发送。该字段属于敏感信息,不要提交真实值到公开仓库。Authorization:可选,完整的Authorization请求头值。适用于浏览器 Network 中已经能看到完整鉴权头的站点;当它与token同时存在时,程序优先使用完整Authorization。
程序在新增站点时会基于规范化后的 URL 查重,避免写入重复站点。抓取前还会做一次整体检查,输出脱敏后的站点顺序、认证字段类型和 raw 输出目录;如果多个站点会写入同一个输出目录,会在开始抓取前提示。
推荐在终端中运行:
python main.pyWindows 用户如果通过双击或“打开方式”直接启动 main.py,程序结束或遇到错误前会提示按回车关闭窗口,方便查看最后的提示信息。更推荐使用 PowerShell、CMD 或 VS Code 终端运行,这样可以保留完整输出。
程序会依次:
- 启动后先选择“爬取数据”或“打开面板”
- 选择“爬取数据”时,检查并读取
site.json - 询问是否直接使用现有配置
- 在需要时进入交互式新增站点流程
- 尝试抓取站点的模型、分组、充值与套餐相关 JSON 数据
- 清洗并输出站点汇总结果
- 对抓取失败站点说明失败原因,能沿用本地数据时会直接用于面板展示
- 尝试自动生成各成功站点的
site/<站点名>/topup+plans.json,如为空或不完整会提示文件路径供后续人工补充,不再反复询问确认 - 按
site.json顺序输出站点任务树,展示接口获得、本地获得与缺失数据后,启动本地服务并自动打开/panel/ - 选择“打开面板”时,直接启动本地服务并打开
/panel/ - 本轮结束后提示是否继续新增/抓取站点;选择退出时会在关闭前等待按回车
运行后会在项目根生成本地输出目录:
site/<站点名>/raw/:抓取得到的原始 JSONsite/<站点名>/<站点名>.json:清洗后的结果site/<站点名>/topup+plans.json:充值/套餐信息,供前端计算性价比
其中 pricing.json 是清洗阶段的必需输入;如果站点还存在分组信息,程序会同时读取 user_groups.json 参与整理。meta.json 会记录各类候选端点的 HTTP 状态、是否鉴权失败或权限不足、payload 结构摘要和实际保存的 raw 文件,便于定位接口缺口。
程序会按 site.json 中的站点顺序推进抓取,并在汇总后输出站点任务树,分组展示“全部任务完成”和“缺数据”的站点,以及每个缺数据站点的接口获得、本地获得和缺失数据项。
程序会优先尝试从 raw/topup.json 与 raw/plans.json 自动生成 topup+plans.json。如果本地 topup+plans.json 已有内容,程序会以本地文件为准,不用接口结果覆盖;如果目标站点接口不存在、登录态失效、权限不足或返回格式暂不支持,程序会在站点诊断中说明缺少模型、分组、充值或套餐中的哪类信息,并列出已尝试端点和 raw 目录;你可以补充对应 raw JSON,或从自己已授权账号的浏览器开发者工具 Network 中查找更完整的接口与 Authorization、token、New-Api-User 等登录态字段。不要把真实认证值提交到仓库。
每个站点目录下的 topup+plans.json 顶层是单个站点的数组,单条记录只需保留原始业务字段,前端会按规则自动推导倍率:当“会员折扣”为 null 时使用 金额 / 额度;当“会员折扣”有值时先计算 实际额度 = 额度 / 会员折扣,再用 金额 / 实际额度 推导倍率。
示例:
[
{
"类型": "充值",
"套餐名": null,
"金额": 10,
"额度": 10,
"会员折扣": null
}
]推荐打开 PowerShell、CMD 或 VS Code 终端后运行 python main.py。如果直接双击 main.py,程序在正常结束、输入流关闭或遇到未处理错误时会提示按回车关闭窗口,便于查看最后输出。
此仓库只保留运行脚本所需的最小公开文件:
仓库不包含真实配置、站点抓取数据、充值/套餐数据、工作日志、内部设计文档和历史备份文件。
本项目仅面向个人使用,仅适用于你本人拥有、正在使用或已获得明确授权访问的 API 站点。
使用本项目时,你需要自行确保:
- 已获得目标站点的访问授权
- 遵守目标站点的服务条款、速率限制和使用规则
- 遵守当地适用法律、数据合规与隐私要求
- 不将本项目用于未授权抓取、批量滥用或其他违规用途
仓库不提供任何真实凭证、真实站点配置或真实抓取结果。因使用者违反服务条款、授权边界或法律法规所产生的后果,由使用者自行承担。
本项目采用 MIT License。