Selparo · 実行環境・購入判断ガイド

n8nで取得したHTMLと画面の値が違う:JavaScriptの追加取得を先に分ける

ブラウザでは新しい値なのにn8nのHTTP Requestでは古い値になるなら、最初に取得したHTMLと、表示後に追加されたデータを比べます。更新間隔やRAMを増やす前に、必要な値がどの応答に含まれるかを決めます。

公式資料確認日:。

HTMLの取得と、ブラウザの表示後は別の時点

Webページは初回HTMLの後にJavaScriptで別のデータを取得し、表示を書き換えることがあります。n8nのHTTP Requestで受け取った本文をHTMLノードへ渡すだけでは、ブラウザの追加要求を行った記録にはなりません。

同じ対象・時刻・本人の利用資格で、HTTP応答本文とブラウザに表示された値を比べます。ブラウザの要素一覧だけを元HTMLの証拠にせず、許可されたページの開発者ツールで最初のDocument応答と必要な追加応答を分けます。

値がある場所で次の行動を変える

HTTP RequestのInclude Response Headers and Statusを使うと、本文とstatus・headerを分けて読めます。HTMLはText、構造化応答はJSONとして、HTMLノードの抽出元フィールドとCSS Selectorを対応させます。ログへCookieやAuthorizationを公開しません。

記入・比較に使う表:初回HTML・追加応答・抽出対象の対応表
観測候補次の判断
初回HTMLに必要な値がある抽出元・selector・項目対応保存した本文から抽出対象を照合
初回HTMLには無く追加応答にある表示時に追加取得公式API・許可されたexportの利用条件を読む
同じURLでも認証状態で内容が違う要求条件が一致していない本人の利用資格と許可された認証方式を確認
応答値は更新済みだが後続は古い下流の入力や保存済み値が候補どの実行のどの入力を参照したか照合

キャッシュ回避を先に決めない

no-cacheはHTTPキャッシュの検証に関する指定で、JavaScriptの実行を依頼する設定ではありません。URLへ無作為な文字を足しても、必要な値が初回HTMLに無ければ入力の取り違えは残ります。

公開質問の一例でも、投稿者はキャッシュ回避後に値が変わらず、ブラウザのJavaScriptが別URLから値を追加する点へ切り分けています。この事例から、あらゆる古い値の原因を同じと断定はしません。

取得経路は見つけることと、使えることを分ける

開発者ツールでURLが見つかっても、継続利用の許可や安定したAPI仕様まで成立するわけではありません。提供者の公式API、本人が使えるexport、許諾された取得方法を優先し、利用条件・対象キー・更新時刻・上限を照合します。

想定例として、初回HTMLが「準備中」で、許可された追加JSONが「完了」なら、判断に使う値と取得元を対応表へ記録します。この例は実測ではありません。応答を取得できた時刻と、業務データが更新された時刻も分けます。

値の根拠が分からなければ通知を保留する

対象キー・更新時点・利用資格が不明なまま、古い値を最新として通知しません。認証回避や無制限な再取得を使わず、許可された入力が用意できるまで保留します。値が正しく取れた後は、Paginationで全件を取る条件と、後続データの元入力対応へ進めます。

公式資料と、判断例の境界

仕様の根拠は以下の公式資料です。本文の記入例は実測値ではありません。購入・設定変更時は、対象の型番・版・契約条件を照合します。

  • n8n:HTTP Requestの応答設定

    HTTP要求の応答bodyを取得。Include Response Headers and Statusでheaderとstatusも返せます。応答形式TextとJSONを区別します。

  • n8n:HTMLの抽出元と操作

    Extract HTML Contentは渡されたHTMLをCSS Selectorで抽出します。Generate HTML Templateのscriptはn8nで実行しないという仕様を、抽出モードの実機試験と混同しません。

  • MDN:JavaScriptによる追加取得と表示更新

    ブラウザのJavaScriptは追加のHTTP要求でデータを取得しDOMを更新できます。初回HTMLと表示後の内容が異なる原因になります。

  • RFC 9111:HTTPキャッシュと検証

    no-cache要求は保存応答を使う前の検証を望む指定であり、ページ内JavaScriptの実行命令でも業務データの更新保証でもありません。