看看會發生什麼
當你點選。

使用小型瀏覽器應用程式連線操作,其網路請求和構建下載的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應用程式,請繼續 應用程式工作流程 要遵循檔案和程序邊界。

頂部