尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
从录制流量到独立客户端:用 agent-browser 逆向网站内部 API 的完整实战指南
从录制流量到独立客户端用 agent-browser 逆向网站内部 API 的完整实战指南【免费下载链接】agent-browserBrowser automation CLI for AI agents项目地址: https://gitcode.com/gh_mirrors/agen/agent-browser导读第一次访问网站应该用浏览器第一百次访问则应该直接调用它的内部 API——本指南围绕 agent-browser 官方技能derive-clientskill-data/derive-client/SKILL.md展开讲解如何通过一次浏览器会话录制网站的 HAR 网络流量再据此逆向出真实的接口形状、响应结构与认证材料最终生成一个无需浏览器即可直连 API 的独立客户端或 CLI。读完本文你将掌握完整的录制 → 识别 → 提取 → 生成 → 验证五步工作流并了解 HAR 录制在 agent-browser 底层cli/src/native/actions.rs的实现机制与容量约束。为什么先录一次、之后永不打开浏览器驱动浏览器完成首次访问是正确选择但同样的流程重复第一百次时直接向站点内部 API 发起 HTTP 调用显然更轻、更快、更稳定。derive-client技能的核心思路是用 agent-browser 录制一次网络流量把捕获到的请求翻译成一个独立客户端脚本、CLI 或库此后完全脱离浏览器运行。这一思路成立的关键前提是录制文件本身已包含推导客户端所需的全部信息。agent-browser 在默认配置下会把文本类响应体JSON / HTML / JS 等直接嵌入 HAR 文件因此浏览器关闭之后你依然可以离线分析每个端点的请求与响应形态。从源码看该行为由HarContentMode枚举控制cli/src/native/actions.rs默认值为Text即仅嵌入文本类响应体JSON、XML、HTML、JS、表单数据、SVG另有None仅记录大小与 MIME 类型和All全部嵌入二进制以 base64 编码两种模式。整体工作流技能给出了五步闭环流程本指南后续章节逐一展开1. Record 启动 HAR 录制驱动一遍客户端需要支持的所有流程 2. Identify 从噪声中找出真正的 API 端点 3. Extract 抽取请求形态、响应 Schema 与认证材料 4. Generate 编写客户端每个流程对应一个函数 5. Verify 逐个端点真实调用验证后再宣布完成1. Record录制目标站点的流量基础命令agent-browser network har start # 默认嵌入文本响应体 # ... 驱动站点搜索、打开详情页、翻页等 ... agent-browser network har stop /tmp/site.har对应的命令解析位于 cli/src/commands.rs 的parse_networknetwork子命令族包含route、unroute、requests、request、har五类其中har仅接受start与stop两个子命令。--content选项只接受all、text、none三个合法值传入其他值会被直接拒绝commands.rs并有对应的解析测试test_network_har_start_with_content_mode、test_network_har_start_rejects_invalid_content_modecommands.rs加以验证。若stop未指定路径HAR 会自动写入~/.agent-browser/tmp/har/har-毫秒时间戳.har见har_output_path实现actions.rs。录制要点覆盖每一个客户端需要支持的流程且每个流程至少用不同输入跑两遍两个搜索词、两个详情页。对比两次录制的 URL就能看出 URL 中哪些部分是参数、哪些是固定路径。需要登录的站点务必先登录再启动 HAR避免凭据无谓地落入录制文件——会话 Cookie 会在第 3 步单独导出。--content all会把二进制响应体也以 base64 嵌入--content none则完全不嵌入。逐条响应体上限为 2 MB源码常量HAR_MAX_BODY_BYTES 2 * 1024 * 1024整个录制会话的嵌入总预算为 64 MBHAR_MAX_TOTAL_BODY_BYTES 64 * 1024 * 1024actions.rs——超限的响应仍保留大小与 MIME 元信息只是不嵌入正文。录制背后的实现机制从源码看handle_har_startactions.rs启动录制时 agent-browser 会通过 CDP 的Network.enable开启网络事件监听并刻意放大缓冲区maxTotalBufferSize100 MB、maxResourceBufferSize10 MB以便响应体在事件被周期性地通过Network.getResponseBody拉取之前不被 Chrome 驱逐例如导航发生时。同时它还会对跨域 iframe 会话也启用网络监听保证 iframe 发起的请求同样进入 HAR。事件收集过程中Network.responseReceived、Network.loadingFinished等条目按HarContentMode与大小上限过滤后进入har_entriesactions.rs。停止录制时handle_har_stopactions.rs所有条目被序列化为HAR 1.2格式creator字段标记为agent-browser及其版本号并尽量附带浏览器产品名与版本har_browser_metadata。响应体以response.content.text呈现若为 base64 二进制则同时写入content.encoding base64请求体则落在request.postDataactions.rs。另有同名测试断言了请求 Cookie 与响应 Set-Cookie 在 HAR 中的解析结果actions.rs。会话进行中agent-browser network requests与agent-browser network request id也能以交互方式查看同样的数据支持--filter、--type、--method、--status等过滤commands.rs但只有 HAR 能在导航与浏览器关闭后存活因此多页面场景一律以 HAR 为准。2. Identify从噪声中识别真正的 API 端点用jq查询 HAR快速列出所有 JSON 接口调用的方法、状态码与 URL# 所有 JSON API 调用method、status、URL jq -r .log.entries[] | select(.response.content.mimeType | test(json)) | \(.request.method) \(.response.status) \(.request.url) /tmp/site.har过滤掉两类噪声埋点与基础设施流量/collect、/track、/beacon、/log之类的遥测端点第三方域google-analytics、segment、sentry、datadog、intercom、hotjar 等。真正的 API 通常具备三个特征第一方域名、JSON 响应、与你执行的操作一一对应。也就是说你点了搜索按钮HAR 里那条新的 JSON 请求大概率就是搜索接口打开详情页紧随其后的那条就是详情接口。3. Extract提取请求形态、响应 Schema 与认证材料查看单个端点的完整细节# 单个端点的完整细节请求头、POST 体、响应体 jq .log.entries[] | select(.request.url | test(api/search)) | {request: {method: .request.method, headers: .request.headers, postData: .request.postData.text}, response: .response.content.text} /tmp/site.har三个核心动作推导响应 Schema直接阅读.response.content.text——这是真实载荷用它来定义客户端函数的返回类型。得益于默认的Text模式JSON 响应体已被嵌入 HAR无需再次联网。提取认证信息横向对比多个端点的请求头重点查找authorization、cookie、x-csrf-token、x-api-key以及站点自定义的x-*头。只重放真正必需的头部——具体哪些必需在第 5 步通过逐个省略、逐个验证来确认。导出会话 Cookie用agent-browser cookies get --json cookies.json把当前会话导出成文件供客户端在运行时加载该命令支持urls参数按域名过滤见handle_cookies_getactions.rs。永远不要把 Cookie 值硬编码进生成的源码——会话会过期源码却会长期留存。4. Generate编写独立客户端生成阶段的四条纪律每个录制的流程对应一个函数如search(query)、getItem(id)返回类型由观测到的响应体推导。认证材料Cookie、Bearer Token从文件或环境变量加载凭据失效时给出明确报错提示用户重新运行浏览器登录后重新导出。如实复现 API 真正要求的请求头——部分站点缺少匹配的user-agent、referer或x-requested-with会直接返回 403。把录制中出现在查询串里的分页、排序、过滤参数保留为函数选项例如page、sort、filter而不是写死。5. Verify逐端点真实验证对生成的每个函数调用真实接口并将响应形态与录制对比。常见失败模式与对策症状原因修复401/403会话过期或缺失通过 agent-browser 重新登录重新导出 Cookie写入操作 403/419CSRF token 是会话级或表单级的先请求 token 端点或保留该流程由浏览器驱动时好时坏请求参数带签名/会过期该步骤回退到浏览器其余部分继续派生响应形态与 HAR 不一致A/B 测试或地域相关响应重新录制并把差异字段合并为可选字段这一环节是派生客户端与猜测接口的本质区别只有真实调用通过、响应结构对得上才宣布完成。注意事项与安全边界内部 API 通常无版本管理、随时变更——务必保留 HAR 文件接口变化后据此重新派生客户端。尊重站点的服务条款与限流策略批量抓取时在请求间加入合理延迟。HAR 文件包含实时会话凭据Cookie、Token、POST 体应按机密文件对待不入版本库用完后删除。与 MCP 生态的衔接derive-client技能声明的allowed-tools为Bash(agent-browser:*)与Bash(npx agent-browser:*)即整个流程通过 Bash 调用 agent-browser CLI 完成。若你的 Agent 通过 MCP 接入相同的录制能力也暴露为agent_browser_network_har_start与agent_browser_network_har_stop两个工具cli/src/mcp.rs其content参数的合法枚举与 CLI 的all|text|none保持一致有测试tool_schema_har_start_content_matches_cli_modes确保两者同步mcp.rs。这意味着无论走 CLI 还是 MCP你都能复用同一条录制 → 派生流水线。参考资源技能原文skill-data/derive-client/SKILL.md命令解析与参数校验cli/src/commands.rsHAR 录制实现与容量常量cli/src/native/actions.rsHAR 内容模式定义cli/src/native/actions.rs会话 Cookie 导出cli/src/native/actions.rsMCP 工具暴露cli/src/mcp.rs【免费下载链接】agent-browserBrowser automation CLI for AI agents项目地址: https://gitcode.com/gh_mirrors/agen/agent-browser创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

金融业数字化转型:AI如何重塑业务流程与决策

金融业数字化转型:AI如何重塑业务流程与决策

1. 金融业数字化转型中的AI角色演进伦敦金融城的一栋玻璃幕墙大厦里,某跨国银行的风险分析师Sarah每天上班第一件事,就是打开AI驱动的市场情绪监测系统。这个由自然语言处理技术支撑的平台,正在实时扫描全球37种语言的财经新闻、社交媒体和监…

📅 2026/9/19 21:03:49
TaoToken + OpenCode 这样验证:401 还是 model not found?

TaoToken + OpenCode 这样验证:401 还是 model not found?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/19 21:03:49
PyPTO-Gym 性能调优实战:基于 CANN msprof 的七指标采集、逐核分析与主 Bound 判定指南

PyPTO-Gym 性能调优实战:基于 CANN msprof 的七指标采集、逐核分析与主 Bound 判定指南

PyPTO-Gym 性能调优实战:基于 CANN msprof 的七指标采集、逐核分析与主 Bound 判定指南 【免费下载链接】pypto-gym PyPTO-Gym 是基于 PyPTO 编程框架构建的算子与模型样例仓库 项目地址: https://gitcode.com/cann/pypto-gym 本文是 CANN/PyPTO-Gym 仓库中 …

📅 2026/9/19 21:03:49
MORE NEWS

更多资讯

📰

ERP选型实战指南:从业务场景反推技术能力

1. 这不是选软件,是选未来三年的业务操作系统ERP系统哪个好?——这问题我每天在客户会议室里听至少七遍。但真正该问的从来不是“哪个好”,而是“哪个能让我财务不加班改凭证、生产不靠Excel追料、销售不拿手机拍单据发给仓库”。2025年&…

📰

一网统管方案落地实战:数据架构、事件模型与性能优化

简介:这份《社会治理一网统管建设方案》PPT面向市域社会治理领域的方案设计者、政务信息化从业者及基层治理研究者,围绕统一平台、分级应用、分级登录的核心理念,系统梳理市、区县、乡镇、村社四级联动体系。内容涵盖总体设计、应用体系、支撑…

📰

Smart Connections 接 DeepSeek Harness,TaoToken 填 Key

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

CC Switch 接 TaoToken:Claude Code 秒切 GLM 5.3 Flash

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Atlas 300V 24G部署YOLOv5实战:从ONNX到OM的完整指南

后台上个月接了一个工业视觉项目,客户拿来的服务器里偏偏插的是Atlas 300V 24G,要跑YOLOv5做缺陷检测。我第一反应也是“这卡不是做视频解码的吗,能跑YOLO?”结果查了一圈之后发现,这卡不只是能跑,跑起来还…

📰

基于MSP430的辐射剂量仪开发:探测器选型、计数与标定

简介:基于MSP430单片机的便携式宽量程γ辐射剂量仪毕业设计论文,面向嵌入式与核辐射监测方向的学习者和研究人员。内容涵盖GM计数管探测电路、MSP430F149主控平台、信号采集处理、串口通讯、A/D采集、电源与报警模块,并设计了完整软件流程和剂…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬