n8n + LLM スクレーパー: ノーコードワークフローでAIの回答をキャッチする
Senior Web Scraping Engineer
重要なポイント:
- n8nは1つのHTTPリクエストノードでScrapeless LLMチャットスクレイパーと通信します — コードもSDKも不要。 単一のノードが
https://api.scrapeless.com/api/v2/scraper/executeにPOSTし、x-api-tokenヘッダーとJSONボディを使用すると、回答が次のノードが読み取れるデータとしてワークフローに届きます。 - リクエストボディは
{ actor, input }のみ。 ボディを{"actor":"scraper.chatgpt","input":{"prompt":"…","country":"US","web_search":true}}に設定すると、ノードは{ status, task_id, task_result }を返します — すべてのScrapeless LLMアクターが使用する同じエンベロープです。 - スケジュールトリガーが呼び出しを常時監視に変える。
Schedule Trigger → HTTP Request → IF → Set/Sheet/DBを接続すると、n8nは設定されたプロンプトを一定の間隔で再実行し、各回答をシートやテーブルに追加します。ターミナルを開く必要はありません。 - IFノードは空の実行を失敗ではなくデータとして扱う。 モデルはセッションごとに
task_resultを埋めるので、空の回答はそのクエリに対する回答がないことを意味します — 分岐して、保存すべきものがないことを記録し、次に進みます。次の定期的な実行で埋められた内容をキャッチします。 - MCPクライアントノードはエージェントノードの代替です。 ワークフローが固定的なパイプラインではなくAIエージェントの場合、n8nのMCPクライアントノードをScrapeless MCPサーバーに向けると、同じキャプチャがエージェントが自ら呼び出すツールになります。
- 無料で始められます。 新しいScrapelessアカウントには無料のトライアルクレジットが含まれています — app.scrapeless.comでサインアップしてください。
イントロダクション: 回答エンジンがワークフローの入力に
LLM回答エンジンは、ユーザーとオープンウェブの間に位置し、ブランドが気にする質問(誰が推奨されるか、どのソースが引用されるか、どの価格が表示されるか)は、ページがクリックされる前にChatGPTの内部で回答されます。この表面をスケジュールに合わせて読むことはデータ収集の仕事であり、n8nは多くのチームがスケジュールデータジョブを運用する場所です。
問題は、ChatGPTには公式の回答APIがなく、オートメーションツールからチャットUIを操作するとログインの壁、ストリーミングされた応答、回答がレンダリングされた後にクライアント側で解決されるフィールドが発生することです。n8nのHTTPリクエストノードは任意のRESTエンドポイントを呼び出すことができますが、レンダリング、家庭のエグレス、パースが他の場所で最初に発生しない限り、呼び出すものはありません。
Scrapeless LLMチャットスクレイパーはその他の場所です:一つのPOSTがレンダリングされたChatGPTの回答をJSONとして返すため、HTTPリクエストノードにはクリーンなエンドポイントがあり、ワークフローの残りは構造化されたフィールドを読み取ります。この投稿は、コードなしでn8nをそのアクターに接続し、スケジュールトリガー、1つのHTTPリクエストノード、空の実行のためのIFブランチ、およびストレージノードを示します。スクレイパーがAIツールとして必要なワークフローのエージェントノードパスを示しています。回答エンジンスクレイパー自体のランク付けされたビューについては、最高のLLMスクレイパーが並べて比較しています。
範囲についての注意:以下のリクエスト契約は、ライブのscraper.chatgptアクターに対して確認されており、すべてのn8nパラメータ名は現在のn8nノードリファレンスに対して確認されています。エンドツーエンドのワークフローは、これらの2つの検証された要素から説明されています — この投稿は、証拠としてスクリーンショットされた実行を提示するものではありません。
何ができるか
- スケジュールされた回答の監視。 毎時または毎朝固定プロンプトセットを実行し、各ChatGPTの回答をシートに追加して、回答の漂移が手動のチェックではなく時系列になります。
- 引用のシェア追跡。
task_result.search_resultを読んでChatGPTが参照したソースを取得し、ランを通じてドメインを集計してモデルがあなたのカテゴリーのために誰を引用し続けているかを確認します。 - ブランド言及のアラート。 回答テキストがあなたの製品を名前に挙げているかどうかで分岐し、言及が現れたときまたは消えたときにIFからSlackまたはメールノードをルーティングします。
- 1つのワークフローでのマルチエンジンキャプチャ。 HTTPリクエストノードを複製し、アクター文字列を
scraper.geminiまたはscraper.perplexityに置き換えます — エンベロープは同一なので、下流ノードは変更されません。 - 非開発者へのノーオペレーションの引き渡し。 ワークフローが存在するようになると、チームメイトがコードに触れずにSetノードやシートでプロンプトリストを編集し、キャプチャが引き続き実行されます。
- エージェントツール呼び出し。 MCPクライアントノードを介してスクレイパーを公開し、n8n AIエージェントが大きなタスクの一部として回答エンジンを照会するタイミングを決定します。
なぜn8nのためにScrapeless LLMチャットスクレイパーなのか
Scrapeless LLMチャットスクレイパーはscraper.chatgptアクターで、ユニバーサルスクレイピングAPIラインの一部であり、n8nに適しているのは、JSONを入力し、JSONを出力する1つの認証されたPOSTであるためです。特にノーコードワークフローのために、以下を提供します:
- HTTPリクエストノードが直接呼び出す単一のRESTエンドポイント - n8nホストにSDKをインストールする必要も、ブラウザを操作する必要もありません。
- サーバーサイドレンダリング、住宅用出口、ボット対策を行い、ノードがログインページではなく完了した回答を受け取るようにします。
- リクエストの
countryフィールドは、JSONボディ内から出口市場を特定します - 1つのノードで市場ごとのキャプチャをカバーします。 { status, task_id, task_result }のエンベロープがscraper.chatgpt、scraper.gemini、scraper.perplexityで共有されるため、動作するノードが他のエンジンに変更せずに複製できます。- 認証として唯一の
x-api-tokenヘッダー - Scrapelessを呼び出す各ノードで再利用可能な単一のn8n資格情報またはヘッダー値です。
無料プランでAPIキーを取得するには、app.scrapeless.comにアクセスしてください。
前提条件
- ワークフローを追加できるn8nインスタンス(クラウドまたはセルフホステッド)
- ScrapelessアカウントとAPIキー - app.scrapeless.comでサインアップ
- HTTPリクエストノードのヘッダーに貼り付けることができるAPIキー(またはn8n資格情報として保存)
- キャプチャされた行の宛先 - Setノード、Google Sheetsノード、またはPostgresなどのデータベースノード
言語ランタイム、プロキシ、またはCAPTCHAソルバーは不要です; リクエストはプレーンHTTPであり、重い作業はScrapeless側で実行されます。
ワークフローの概要
キャプチャ全体は4つのノードを直線状に配置しています:
スケジュールトリガー → HTTPリクエスト → IF → Set / Google Sheets / Postgres
(間隔) (POST アクター) (空?) (回答を保存)
スケジュールトリガーは間隔に応じて発火し、HTTPリクエストノードがscraper.chatgptを呼び出します。IFノードは、回答が populated(内容がある)かどうかを確認し、ストレージノードが行を書き込みます。IFノードの空ブランチは、回答がない実行が記録され、無視される場所です - 再送信されません。以下の各ノードは、現在のn8nノードの参照に存在するパラメータのみを示しています。
ステップ1 - スケジュールトリガー
スケジュールトリガーは、固定の間隔でワークフローを開始し、誰も再生ボタンを押さずにキャプチャが実行されます。スケジュールトリガーノード(バージョン1.3タイプ)を追加し、そのトリガールールをintervalに設定します - 毎時間、数時間ごと、または一日に一度、追跡する回答がどれだけ頻繁に変動するかに応じて。回答エンジンのモニタリングの場合、通常は毎日または1日2回で十分です。数週間のシリーズが信号であり、分単位の変化ではありません。
トリガーは、発火ごとに1つのアイテムを出力します。1回の実行でいくつかのプロンプトを希望する場合は、プロンプトリストを出力するSetノードに続けるか、スプレッドシートからプロンプトを読み取ります - 各プロンプトがそのノードを通して独自のアイテムとして流れます。
ステップ2 - HTTPリクエストノード:アクターを呼び出す
HTTPリクエストノードは統合です。アクター呼び出しをScrapelessにPOSTし、解析された回答をワークフローに返します。HTTPリクエストノード(バージョン4.4タイプ)を追加し、以下のパラメータを設定します:
- メソッド →
POST - URL →
https://api.scrapeless.com/api/v2/scraper/execute - ヘッダーを送信 → 有効にします。1つのヘッダーを追加します:名前
x-api-token、値 あなたのScrapeless APIキー(またはn8n資格情報を参照)。 - ボディを送信 → 有効にします。
- ボディコンテンツタイプ →
JSON。 - ボディを指定 → JSONを使用し、アクター呼び出しをJSONフィールドに貼り付けます。
JSONボディは、アクター名とinputオブジェクト全体です:
json
{
"actor": "scraper.chatgpt",
"input": {
"prompt": "best running shoes 2026",
"country": "US",
"web_search": true
}
}
プロンプトを動的にするためには、静的な文字列をn8n式に置き換え、受信アイテムを読み取ります - たとえば、このノードに供給したSetノードやシート行からpromptを取得します。countryはひとつの市場の出口を固定し、web_searchはモデルにライブソースからの情報を引き出させ、回答が解決する頻度を向上させます。すべてのフィールドはinput内にあり、ボディの最上位レベルでpromptやcountryを送信することはアクターによって拒否されます。
ノードのタイムアウトを十分に余裕を持たせて設定します。レンダリングされた回答が戻ってくるのに時間がかかる場合があるため、短いデフォルトタイムアウトでは回答が到着する前に呼び出しが切られてしまいます - 余裕を持たせましょう。
ノードは、アイテムのJSONとして標準のエンベロープ{ status, task_id, task_result }を返します。下流のノードは、task_result.result_textから回答を読み取ります。ソースはtask_result.search_resultから取得します。
無料プランでAPIキーを取得するには:app.scrapeless.com
ステップ3 - IFノード:空の回答に分岐する
IFノードは、保存すべきものがあるかどうかを決定します。ChatGPTの回答はセッションごとに生成されるため、同じプロンプトが1回の実行で完全な回答を返し、次の回では空のtask_resultを返す場合があります — これは失敗ではなく、このクエリに対する回答がこの実行ではないだけです。HTTPリクエストノードの後にIFノード(バージョン2.3タイプ)を追加し、回答フィールドが空であるかどうかをテストする単一の条件ルールを書いてください — たとえば、task_result.result_textをチェックして非空であることを確認します。
- 偽分岐(回答あり) → ステップ4のストレージノードに接続します。
- 真分岐(回答なし) → 実行が何も生成しなかったことを記録し、停止します。「空の実行」マーカーロウを書くノーオプノードまたはセットノードで十分です。
空の分岐は再度アクターを呼び出しません。次のスケジュールされた実行は、 populatedな回答の次の機会であり、回答を返す実行を集約することが全体のパターンです。空の結果はエラーを追跡するのではなく、null可能なデータとして扱います。
ステップ4 — 回答を保存する
ストレージノードは、各filled answerを後でクエリできる行に変換します。IFノードの回答ありの分岐をプログラムに適した宛先に接続します:
- セットノード → アイテムを保持するフィールドに絞ります:プロンプト、
task_result.result_text、task_result.search_resultからのソースドメイン、task_id、およびキャプチャタイムスタンプ。別のノードが書き込む場合でも、最終的な形状ステップとして便利です。 - Googleスプレッドシートノード → 開発者でない人でも読んだり編集したりできる共有可能な、データベースのないログとして、毎回の実行につき1行を追加します。
- Postgres(または他のデータベース)ノード → キャプチャが倉庫やダッシュボードに供給されるときにテーブルに挿入します。
すべての行にtask_idと実行時間を保存します。回答の長さ、引用の数、指定されたソースは実行ごとに変わるため、重要なのはキャプチャ全体のシリーズであり、単一の応答ではありません。
公式のScrapelessノード — そしてなぜこのガイドがHTTPリクエストを使用するのか
n8nには公式のScrapelessコミュニティノード(n8n-nodes-scrapeless)があります。それをインストールし、Scrapelessの資格情報で1回認証すると、3つの表面のためのタイプ付けされた操作が得られます:Deep SerpApi(Google検索とGoogleトレンド)、Universal Scraping API(Web Unlocker)、およびCrawler(Scrape and Crawl)。これらのジョブのいずれかについて、このノードはクリーンな選択です — 手動で構築するURLやJSONボディはありません。
LLMチャットスクレイパーアクター(scraper.chatgpt、scraper.gemini、scraper.perplexity、およびscraper.aimode)は、現在のノードリリースでは操作として公開されていないため、回答エンジンの反応をキャプチャする場合はHTTPリクエストノードがパスとなります:それは直接/api/v2/scraper/executeにアクセスし、これが上記のステップが構築するものです。後のノードリリースでLLM操作が追加される場合、Scrapelessの資格情報とワークフローの形は保持されます — 変更されるのは中間ノードだけです。
エージェントノードの代替:MCPクライアント + Scrapeless MCPサーバー
ワークフローが固定されたパイプラインではなくAIエージェントである場合、n8nのMCPクライアントノードが手動で構築されたHTTPコールを置き換えます。MCPクライアントノードはMCPサーバーに接続し、そのサーバーのツールをn8n AIエージェントに公開します。これにより、エージェントが推論に必要なときにそれらを自分で呼び出すことができます。Scrapeless MCPサーバーを指向させると、回答エンジンのキャプチャがエージェントが呼び出すツールの一つになります — エージェントは、より大きなタスクの一部としてChatGPTに問い合わせるタイミングを決定します。その代わりに、あなたが固定された分岐に呼び出しを接続します。
この2つのパスは異なるニーズに応えます。HTTPリクエストノードは、決定論的でスケジュールされたキャプチャに適したツールです — 同じプロンプト、同じリズム、予測可能な行。MCPクライアントノードは、エージェントが動的に何をどのようにクエリするかを選択すべきときに適したツールです。基盤となるScrapeless表面は同じですが、呼び出しを引き起こす主体だけが変わります。
返されるもの
HTTPリクエストノードは、アクターの標準のエンベロープをアイテムJSONとして返します。回答はtask_resultの下にあり、プローズはresult_textに、参照されたソースはsearch_resultにあります。以下の形状はscraper.chatgptが返すものであり、フィールドの値はライブ実行からの参考例です(テキストとソースはトリムされています)。
json
// スキーマはscraper.chatgptが返すものです;フィールド値はライブ実行からの参考例です。
{
"status": "success",
"task_id": "…",
"task_result": {
"prompt": "best running shoes 2026",
"model": "gpt-5-mini",
"result_text": "Here are the best running shoes in 2026, based on recent testing across major brands (ASICS, Nike, HOKA, Adidas, Brooks, Saucony) …",
"content_references": [],
"search_result": [
{ "title": "10 Best Running Shoes of 2026 | Lab Tested & Ranked", "url": "https://…", "snippet": "…", "attribution": "outdoorgearlab.com" }
],
"links": [],
"web_search": true
}
}
n8n内でこれを読むためのいくつかの正直なノート:
- すべてのフィールドは null 許容です。
result_textは空であり得ますし、search_resultは特定の実行において空の配列であることもあります — ステップ 3 の IF ノードはまさにその場合のために存在します。フィールドが欠けている場合は、どの式でもそれを読み取る際にガードを設けてください。 search_resultは引用面です。 各エントリーにはtitle、url、snippet、およびattributionが含まれています。ホストは Set ノードで URL から解析し、引用のシェアのために実行を通じて集計します。web_searchはリクエストを反響します。 実行のためにライブソースのプルがオンだったかどうかを反映します;推奨プロンプトの解決を良くするために、ボディ内ではtrueにしてください。- 出力は実行ごとに異なります。 同じプロンプトに対する応答の長さやソースのカウントは変わるため、キャプチャのタイムスタンプと
task_idはすべての保存された行に含まれるべきです。
FAQ
Q: n8n を LLM Chat Scraper に接続するためにコードを書く必要がありますか?
いいえ。統合は、POST メソッド、/api/v2/scraper/execute URL、x-api-token ヘッダー、および JSON ボディを設定した組み込みの HTTP リクエストノードです。n8n ホストにインストールする SDK はなく、記述する必要のあるファンクションノードもありません。
Q: Scrapeless API キーは n8n のどこに置くべきですか?
HTTP リクエストノードのヘッダーに置きます — ヘッダーを送信 を有効にし、x-api-token という名前のヘッダーを追加し、その値をあなたのキーに設定するか、n8n の資格情報を参照してキーがノード自体に保存されないようにします。同じヘッダーはワークフロー内のすべての Scrapeless コールで機能します。
Q: 一度の実行で何個かのプロンプトを送信するにはどうすれば良いですか?
スケジュールトリガーの後に設定ノードを使ってプロンプトリストを出力するか、Google シートからプロンプトを読み取ります。各プロンプトは独自の項目となり、HTTP リクエストノードを通じて別々に流れるので、一度の実行で全体のセットをキャプチャできます。
Q: 応答が空で返ってくるとどうなりますか?
ChatGPT の応答はセッションごとであり、空の task_result はその実行でそのクエリに対する応答がないことを意味します。IF ノードの空のブランチは何もせずに記録し、停止します;次のスケジュールされた実行が、適切な応答を得る次のチャンスとなります。ワークフローは同じ呼び出しを再送信しません。
Q: 同じワークフローから Gemini と Perplexity を同時にキャプチャできますか?
はい。HTTP リクエストノードを複製し、アクター文字列を scraper.gemini または scraper.perplexity に変更します。エンドポイント、ヘッダー、および { status, task_id, task_result } エンベロープは同一なので、下流の IF ノードおよびストレージノードは変更されません。
Q: HTTP リクエストノードの代わりに MCP クライアントノードを使用すべき時はいつですか?
予測可能なプロンプトで固定されたスケジュールキャプチャを行う際には HTTP リクエストノードを使用します。n8n AI エージェントが独自にクエリするかどうかを決定すべき時には、Scrapeless MCP サーバーを指す MCP クライアントノードを使用します — スクレイパーはその時エージェントが呼び出すツールとして機能します。
Q: n8n ホスト上でプロキシまたはブラウザを動かす必要がありますか?
いいえ。レンダリング、住宅用エグレス、およびアンチボットハンドリングはすべて Scrapeless 側で実行されます。n8n ホストは単に外向きの HTTPS リクエストを行い、ボディ内の country フィールドがエグレス市場を選択します。
Q: ChatGPT の応答を収集することは合法ですか?
返されるデータは、ChatGPT が任意のユーザーに示す公開されている応答です。どのようなスクレイピングと同様に、合法性は管轄権および使用方法によります — ビルドを始める前に関連する利用規約を見直し、法律相談を行い、公開されている応答とソースデータのみを収集し、個人データは決して収集しないでください。
結論:四ノードの常設キャプチャ
n8n を Scrapeless LLM Chat Scraper に接続することは、1 つの HTTP リクエストノードのみに簡略化されます:POST { actor, input } を /api/v2/scraper/execute に x-api-token ヘッダーと共に送信し、task_result を読み返し、空の実行で分岐し、行を保存します。スケジュールトリガーはそれを常設モニターに変え、MCP クライアントノードはワークフローがそれを必要とする際にエージェントツールに変えます。プロンプトセットのスコープを絞り、各市場ごとに country を固定し、すべてのフィールドを null 許容として扱い、task_id とタイムスタンプを保存して、シリーズが信号となるようにします。固定のプロンプトセットをスケジュールで実行し、ユニバーサル スクレイピング API のクレジットを使用し、応答エンジンはワークフローの他の部分が行うことへのクリーンな入力となります。リクエスト契約およびフィールド名は、ライブの LLM Chat Scraper アクターに対して確認され、ノードパラメータは最新の n8n ノードリファレンスに対して確認されます。
AI-回答データパイプラインを構築する準備はできましたか?
私たちのコミュニティに参加して、無料プランを取得し、AI-回答データパイプラインを構築している開発者とつながりましょう:Discord · Telegram。
app.scrapeless.com にサインアップして無料トライアルクレジットを獲得し、上記の四ノードワークフローをあなたのプログラムが追跡するプロンプト、エンジン、および市場に向けて指示してください。
Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。



