單擊匯出時會發生什麼?
Notes 瀏覽器示例有一個Export notes(匯出筆記)按鈕。點選後載入 notes.json,把兩條筆記格式化為 CSV,再開始下載。
從點選到CSV下載
- 01 · 你點選 Export notes在捕獲進行時,用瀏覽器執行操作。
- 02*REA 記錄請求從所選頁面捕獲請求URL,響應狀態和JSON結構。
-
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響應的形狀。 較早的請求在此捕獲之外。
讀取請求和匯出指令碼
| 捕獲的事實 | 數值 |
|---|---|
| 請求 | 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。讀取捕獲的指令碼原始碼,看看它如何使用資料:
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應用程式,請繼續 應用程式工作流程 要遵循檔案和程序邊界。