看看会发生什么
当你点击。

使用小型浏览器应用程序连接操作,其网络请求和构建下载的JavaScript。

单击导出时会发生什么?

Notes 浏览器示例有一个Export notes(导出笔记)按钮。点击后加载 notes.json,把两条笔记格式化为 CSV,再开始下载。

从点击到CSV下载

  1. 01 · 你点击 Export notes在捕获进行时,用浏览器执行操作。
  2. 02*REA 记录请求从所选页面捕获请求URL,响应状态和JSON结构。
  3. 03 · 编程助手读取导出代码把观察到的请求与 export.js 中的 fetch("./notes.json") 关联起来。

GET notes.json → 200 → notes[] → CSV

在单击导出注释之前开始捕获。

使用远程调试打开Chrome

用独立的浏览器配置和本地调试端口打开在线 Notes 示例。Linux 上:

启动示例浏览器
google-chrome \
  --remote-debugging-port=9222 \
  --user-data-dir=/tmp/rea-notes-browser \
  https://rea.tools/examples/notes-web/

在macOS或Windows上使用已安装的浏览器的可执行路径。 你可以将页面URL替换为要检查的其他页面。

REA连接到这个现有的浏览器。 你可以控制页面,执行操作,并在完成后关闭浏览器。

让你的编程助手看一个动作

你的编程助手

用 REA 检查这个页面。我点击 Export notes 时,它发起什么请求?CSV 是怎样生成的?

示例 prompt。把调试地址 http://127.0.0.1:9222 和页面网址交给助手。等它开始捕获,再点击按钮。

你的编程助手发现页面目标,启动观察窗口,并读取生成的证据。 然后,它可以检查导出后面的脚本。

或从终端捕获

查找页面的目标ID:

查找页面
npx -y rea-agents@latest list-browser-targets \
  http://127.0.0.1:9222 --json

选择网址为 Notes 示例的目标,把下面的 TARGET_ID 换成目标 ID,再运行:

捕捉接下来的十秒
npx -y rea-agents@latest inspect-web-page \
  http://127.0.0.1:9222 TARGET_ID \
  --observation-ms 10000 \
  --include-accessibility-text \
  --include-json-body-shapes --json

让命令连接几秒钟,再在浏览器中点击Export notes。观察时间窗口结束后会返回结果。

捕获的结果包括所选页面、该窗口期间的网络活动以及JSON响应的形状。 较早的请求在此捕获之外。

读取请求和导出脚本

在本地笔记示例中用REA4.1.0记录
捕获的事实 数值
请求 GET /examples/notes-web/notes.json
回应 200 · application/json
请求发起者 export.js · 脚本
响应结构 notes[] 与 id 和 title 字段
阅读加载的脚本
npx -y rea-agents@latest inspect-web-page \
  http://127.0.0.1:9222 TARGET_ID \
  --include-script-sources --json

请求指出了数据来源,REA 记录的请求发起方是 export.js。读取捕获的脚本源码,看看它如何使用数据:

export.js · 示例源摘录
const response = await fetch("./notes.json");
const { notes } = await response.json();
// Format each note as a CSV row.
const url = URL.createObjectURL(new Blob([csv], { type: "text/csv" }));
link.href = url;
link.download = "notes.csv";
link.click();

下载是使用JSON响应在页面中构建的。 CSV格式化步骤来自脚本;网络捕获建立此单击请求 notes.json.

打开示例 · 下载 export.js · 下载 notes.json

查找请求的脚本 notes.json. 它如何转义包含逗号或引号的标题?

对于已安装的JavaScript或Electron应用程序,请继续 应用程序工作流程 要遵循文件和进程边界。

顶部