ブラウザー / 中級 / 読了目安: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:3000

02. 対象のページを正確に選ぶ

ターゲット一覧からアプリの URL を見つけ、ターゲット ID をコピーします。実験の前にそのページを調べてください。タブが再読み込み・置換された場合は古い ID を再利用せず、一覧を取り直します。

ターミナル
npx -y [email protected] list-browser-targets http://127.0.0.1:9222 --json
npx -y [email protected] inspect-web-page http://127.0.0.1:9222 TARGET_ID --observation-ms 1000 --json

03. 通常時を記録してから1回エクスポートする

まず短い待機時間を記録し、バックグラウンドのポーリングを確認します。次に2回目の観測を開始し、観測期間内に自分でエクスポートをクリックしてください。REA の受動的な観測機能が代わりにボタンを押すことはありません。

入力は、固有のテストラベルを持つ2行など、小さく見分けやすいものにします。スピナー表示、ファイルのダウンロード、エラーの有無を記録してください。新しい通信がすべてエクスポート由来と決め付けず、2回の記録を比較します。

ターミナル
npx -y [email protected] 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 [email protected] analyze-web-bundle http://127.0.0.1:9222 TARGET_ID --json
コーディングエージェントに依頼する
選択したページとこのエクスポート記録を使い、サーバーが生成するファイルを要求するのか、ブラウザー内でファイルを作るのか説明してください。観測した動作を関連する読み込み済みコードに結び付け、不足する根拠を示します。メタデータだけからレスポンス内容を推測しないでください。

05. 扱いづらい入力でも繰り返す

カンマ、引用符、改行を含む行をエクスポートします。テキストエディターだけでなく、その形式のパーサーで出力を開いてください。ダウンロードの成功だけでは、正しいエンコードを証明できません。

操作の時系列、選択したリクエストまたはクライアント関数、ファイルの検証結果をまとめます。これは自分の対象で再現できる手順であり、記事に第三者サービスの取得済みセッションは含まれていません。

コマンドは REA 6.4.0 で確認済みです。対象固有の結果は、ファイルとプロバイダーに依存します。 元の資料と対象範囲を読む →

さらに調べる次のチュートリアルを選ぶ →

REA は初めてですか? REA とは? · ガイドの検証方針