瀏覽器 / 進階 / 閱讀約 15 分鐘
REA 瀏覽器分析:點選匯出後發生了什麼?
使用 REA 分析瀏覽器匯出操作,將請求與已載入程式碼關聯,並判斷頁面何時無需伺服器就能生成下載檔案。
本頁內容
一條簡短時間線,將匯出操作與觀察到的請求或用戶端生成下載的路徑聯絡起來。
你需要使用隔離偵錯設定的 Chromium 瀏覽器、你控制的頁面,以及 REA。範例啟動指令適用於 macOS Chrome。
01. 啟動隔離的瀏覽器工作階段
使用獨立偵錯設定開啟本機應用程式,明確所選頁面和測試資料。將最後的 URL 替換為你自己的本機應用程式。Windows 或 Linux 請使用對應的 Chrome 可執行檔案。
偵錯端點是瀏覽器控制連線,與應用程式 URL 不同。使用明確的回送位址,以及 REA 回傳的目標 ID。
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--remote-debugging-port=9222 \
--user-data-dir=/tmp/rea-export-profile \
http://127.0.0.1:300002. 選中準確頁面
列出目標,找到應用程式 URL 並複製目標 ID。實驗前先分析該頁面。如果分頁重新載入或被替換,請重新列出目標,不要複用舊 ID。
npx -y rea-agents@6.4.0 list-browser-targets http://127.0.0.1:9222 --json
npx -y rea-agents@6.4.0 inspect-web-page http://127.0.0.1:9222 TARGET_ID --observation-ms 1000 --json03. 先紀錄基線,再匯出一次
先紀錄一小段空閒時間,讓後臺輪詢顯現。再開始第二次觀察,在觀察視窗內親自點選匯出。REA 的被動觀察器不會替你點選按鈕。
輸入應簡短且易辨認,例如包含唯一測試標籤的兩行資料。紀錄應用程式是否顯示載入動畫、下載檔案或報錯。比較兩次紀錄,不要假設每個新增請求都屬於匯出操作。
npx -y rea-agents@6.4.0 observe-web-session http://127.0.0.1:9222 TARGET_ID --observation-ms 10000 --json > export-capture.json- 操作之後是否發起了請求?
- 它的方法、URL 和報告的狀態是什麼?
- 能否透過發起方或已載入指令碼,將它與按鈕關聯?
- 下載檔案是否實際生成,是否包含測試資料行?
04. 沒有請求?檢查用戶端路徑
有些匯出會在 JavaScript 中構建 Blob,直接下載而不請求伺服器。因此,空請求列表是一條有用線索,並不代表擷取失敗。檢視已載入指令碼,在相關功能中搜尋 Blob、createObjectURL 和 download 屬性。
打包程式碼分析報告的是靜態候選項。看起來像端點的字串,並不能證明它被呼叫過。將請求觀察結果與原始碼發現分列紀錄。
npx -y rea-agents@6.4.0 analyze-web-bundle http://127.0.0.1:9222 TARGET_ID --json根據所選頁面和這次匯出紀錄,解釋匯出操作是請求伺服器生成檔案,還是在瀏覽器中構建檔案。把觀察到的活動與相關已載入程式碼關聯,指出缺失的證據。不要僅憑後設資料推斷回應內容。05. 用棘手輸入再試一次
匯出包含逗號、引號和換行符的一行資料。使用對應格式的解析器開啟結果,而不只是文字編輯器。下載成功不代表檔案編碼正確。
交付操作時間線、選定請求或用戶端函式,以及檔案驗證結果。這是用於你自己的目標的可重現流程;本文不包含對第三方服務實際擷取的工作階段。
指令已依 REA 6.4.0 核對。實際結果取決於分析的檔案與使用的分析後端。 檢視上游來源與範圍 →