AIエージェント向けCAPTCHAチャレンジの解決方法: n8n、CapSolver、OpenClawを用いたデータ抽出

Sora Fujimoto
AI Solutions Architect
09-Feb-2026

AIアシスタントに自動化されたサーバーサイドのデータ抽出をトリガーする機能を付与します — ブラウザのインジェクションやコードは必要ありません。
課題: CAPTCHAがAIエージェントの効率を妨げる
AIエージェントがウェブをナビゲートする際、CAPTCHAが主な障害物となります。保護されたページはエージェントをブロックし、フォームの送信ができない、タスクが人間の介入を待って停止します。これにより、自動データスクリーニングや情報処理におけるAIエージェントの効率と自律性が大きく制限されます。
この根本的な問題に対処するため、OpenClawとCapSolverの2つの強力なソリューションを提供します。
アプローチ1 — ブラウザ拡張機能の統合
OpenClawのブラウザ環境にCapSolverのChrome拡張機能をロードします。この拡張機能はクライアントサイドでCAPTCHAを検出・解決し、n8nの関与なしにスムーズに検証を回避します。これにより、AIエージェントはページをナビゲートしながら検証を無視できます。(拡張機能アプローチの詳細なガイドはこちらを参照)
アプローチ2 — サーバーサイドのn8nオートメーションパイプライン(本ガイドの焦点)
OpenClawが単一のwebhookリクエストをトリガーし、n8nがCapSolver APIを通じてCAPTCHAを解決し、フォームを送信し、AIエージェントにクリーンなページコンテンツを返します。このプロセスでは、AIエージェントが直接CAPTCHA検証を扱いません。
作成する内容:
OpenClawがwebhook経由でトリガーするサーバーサイドのCAPTCHAオートメーションパイプライン。n8nはCapSolverを活用してCAPTCHAを解決し、フォームを送信し、処理済みのページコンテンツをAIエージェントに返します。これにより、データ抽出タスクのスムーズな実行が保証されます。
前提条件
開始する前に、以下の環境とツールを確保してください:
- OpenClawがインストールされており、ゲートウェイが動作していること (
openclaw gateway start) - n8nがローカルで動作している — インストールガイド
- CapSolverアカウントとAPIキー — サインアップはこちら
- n8nにCapSolverノードが利用可能 — (公式統合 — 既に組み込まれています)
n8nでのCapSolverの設定
CapSolverはn8nの公式統合として利用可能で、追加のコミュニティノードのインストールは必要ありません。ワークフローを構築する際、ノードパネルで直接見つけることができます。CapSolverノードをアカウントと認証するには、n8nで資格情報を設定する必要があります。
n8nのキャンバスを開き、**+**をクリックしてノードを追加し、CapSolverを検索してください。このノードは、タスクの作成、ポーリング、トークンの取得を1つのユニットで処理します。
資格情報を追加する手順:
- n8nで 資格情報 → 新規資格情報 を選択
- CapSolverを検索
- CapSolverダッシュボードから取得したAPIキーを貼り付け
- 保存
重要: ワークフロー内のすべてのCapSolverノードはこの資格情報を参照します。1度だけ作成すればよく、すべてのCAPTCHA解決ワークフローが同じ資格情報を共有します。さらに、CapSolverは公式に豊富なGitHubスキルリポジトリを提供しており、CapSolverに関連する他の統合や使用例を探索できます。これにより、AIエージェントの能力をさらに拡張できます。
ワークフロー: OpenClaw CAPTCHAオートメーションパイプライン
以下のすべては例です。URL、フィールド名、CAPTCHAタイプ、成功条件、応答構造 — すべてはここでのデモサイトに特化しています。実際のターゲットは異なります。各ノードの設定は完成形ではなく、スタート地点として扱ってください。
仕組み
- Webhook — OpenClaw(または任意のHTTPクライアント)からのPOSTリクエストを受け取ります。
- CapSolver — 設定されたタスクタイプを使用してCAPTCHAを解決します。
- HTTPリクエスト — 解決されたトークンをターゲットサイトに送信します。
- If — 応答が成功または失敗を示しているかを確認します。
- フィールド編集 — 応答から
pageTextを抽出します。 - Webhookへの応答 — 結果を呼び出し元に返します。
Webhook ──► CAPTCHAを解決 ──► トークンを送信 ──► 成功? ──► 結果を抽出 ──► Webhookに応答
└─► 失敗をマーク ───┘
ノード設定の詳細
「OpenClaw/Capsolver/n8n Scraper」という新しいワークフローを作成し、以下のノードを使用します:
1. Webhookノード
- タイプ: Webhook
- HTTPメソッド: POST
- パス:
openclaw/scrape - 応答: 応答ノード (コールを同期的に行う — 呼び出し元は結果を待機します)
2. CapSolverノード
- タイプ: CapSolver
- タスクタイプ:
ReCaptchaV2TaskProxyless - ウェブサイトURL:
https://example.com/protected-page - ウェブサイトキー:
YOUR_SITE_KEY(ページソース内でdata-sitekeyを検索) - 資格情報: CapSolverのAPIキー
reCAPTCHA v3を使用している場合、タスクタイプを
ReCaptchaV3TaskProxylessに切り替え、Page Actionフィールドを追加(例:login、submit、homepage)。これはv3で必須です — サイトがGoogleと登録するアクション名です。grecaptcha.execute(...)の呼び出し近くで見つかります。各CAPTCHAタイプには固有のパラメータセットがあります — v2ではオプションだったフィールドがv3では必須になる場合があります。また、v3ではv2に存在しないフィールド(例:
minScore)が表示される場合もあります。必ずCapSolverドキュメントでタスクタイプに必要な正確なパラメータを確認してください。
このノードはCapSolver APIを呼び出し、解決を待機(通常5〜20秒)し、$json.data.solution.gRecaptchaResponseでトークンを返します。
3. HTTPリクエストノード
- メソッド: POST
- URL:
https://example.com/protected-page - ボディ: form-urlencoded
g-recaptcha-response=={{ $json.data.solution.gRecaptchaResponse }}
- ヘッダー: 通常のブラウザヘッダー(User-Agent、Accept、Referer、Originなど)
これはブラウザと同じようにフォームを送信します。
ヒント: トークンの送信方法はサイトによって異なります。多くのフォームでは
g-recaptcha-responseとしてリクエストボディに送信しますが、一部のサイトではJSONフィールド、カスタムヘッダー、またはクッキー、異なる名前で送信する場合があります。実際の送信内容を確認するには、ブラウザのDevTools(Networkタブ)を使用し、HTTPリクエストノードでそれに合わせて設定してください。
4. Ifノード(成功確認)
- 条件:
$json.dataに"recaptcha-success"が含まれている - Trueブランチ → フィールド編集(成功)
- Falseブランチ → フィールド編集1(失敗)
5. フィールド編集 / フィールド編集1ノード
両方のブランチで1つのフィールドを設定します:
pageText={{ $json.data }}
成功と失敗のブランチは両方ともpageTextを渡します — 呼び出し元はHTMLを検査して結果を判断できます。
ご自身のページに合わせてカスタマイズしてください: 応答データをパースおよび使用する方法は、ご自身の目的とターゲットサイトが返す内容に完全に依存します。一部のページはJSONを返し、他のページはHTMLを返し、成功時にリダイレクトする場合もあります。特定のフィールドの抽出、テーブルのパース、セッションクッキーの確認、HTMLの完全削除など、ご自身のニーズに合わせてカスタマイズしてください。成功条件(
"recaptcha-success")も例であり、ご自身のサイトには独自の指標があります。これらのノードはスタート地点として扱い、ご自身のユースケースに合わせてカスタマイズする必要があります。
6. 結果の保存ノード
このノードは、{ pageText, savedAt }をwebhook応答に渡し、オプションで結果をストレージに永続化します。
注意: n8nのCodeノードはNode.jsビルトインモジュール(例:
require('fs'))をブロックするサンドボックス環境のVMで実行されます。ディスクに書き込むにはExecute Commandノードを使用してください。または、ご自身のスタックに合った任意のn8n統合でこのノードを置き換えることもできます。
オプションA — ローカルJSONファイル(Execute Commandノード):
2つのノードを連続して使用します:
ノード7a — データ準備(Codeノード):
javascript
const item = $input.first().json;
const now = new Date();
const savedAt = now.toISOString();
const data = { pageText: item.pageText || '', savedAt };
const encoded = Buffer.from(JSON.stringify(data)).toString('base64');
const cmd = 'python3 /path/to/save-result.py ' + encoded;
return [{ json: { cmd, pageText: data.pageText, savedAt } }];
ノード7b — 結果保存(Execute Commandノード):
- コマンド:
={{ $json.cmd }}
ここでsave-result.pyはbase64引数を読み込み、ローカルJSONファイルに追加します。
オプションB — n8nがサポートする任意のストレージ:
n8nはほぼすべてのストレージシステムに対応するネイティブノードを提供しています。ノード7をこれらのいずれかに置き換えてください:
| ストレージ | n8nノード |
|---|---|
| Googleスプレッドシート | pageText + タイムスタンプで行を追加 |
| Airtable | レコードを作成 |
| Notion | データベースエントリを作成 |
| PostgreSQL / MySQL | テーブルにINSERT |
| AWS S3 / Cloudflare R2 | JSONファイルをアップロード |
| Slack / Telegram | チャンネルに結果を投稿 |
Edit FieldsとRespond to Webhookの間にノードを接続し、$json.pageTextとタイムスタンプを保存するように設定してください。
7. Webhookへの応答ノード
- 応答形式: JSON
- 応答本文:
={{ JSON.stringify($json) }} - 失敗時も継続: 有効
ワークフローを構築したら、有効にしてください。webhookのパスは以下になります:
POST http://127.0.0.1:3005/webhook/openclaw/scrape
このワークフローをインポート
以下のJSONをコピーし、メニュー → JSONからインポートでn8nにインポートしてください。インポート後、"Solve CAPTCHA"ノードでCapSolverの資格情報を選択してください。
クリックしてワークフローのJSONを展開
json
{
"nodes": [
{
"parameters": {
"content": "## OpenClaw CAPTCHAオートメーションパイプライン\n\n### 仕組み\n\n1. webhookトリガーでプロセスを開始します。\n2. 専門的なサービスを使用してCAPTCHAを解決しようとします。\n3. CAPTCHAトークンを検証のために送信します。\n4. トークン送信が成功したかを評価します。\n5. 結果を設定し、webhook経由で応答します。\n\n### 設定手順\n\n- [ ] 望ましいエンドポイントURLでwebhookトリガーを設定してください。\n- [ ] CAPTCHA解決サービスの資格情報を設定してください。\n- [ ] トークン送信に適したHTTPリクエストの設定を確認してください。\n- [ ] 成功および失敗の応答メッセージをカスタマイズしてください。\n\n### カスタマイズ\n\n'Success?'ノードで成功および失敗の条件と応答をカスタマイズできます。",
"width": 480,
"height": 656
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1312,
-352
],
"id": "de683912-ba9c-4879-9a8e-38190c4b236c",
"name": "スタickyノート"
},
{
"parameters": {
"content": "## 初期化とCAPTCHA解決\n\nwebhookトリガーから始まり、外部サービスを使用してCAPTCHAを解決します。",
"width": 800,
"height": 272,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-752,
-208
],
"id": "41705a72-53ba-4c61-951b-251f7f35f422",
"name": "スタickyノート1"
},
{
"parameters": {
"content": "## トークン送信\n\n解決されたCAPTCHAトークンを検証のために送信し、結果を確認します。",
"width": 496,
"height": 304,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
160,
-224
],
"id": "260fdb86-71a7-46dc-9b41-1abd4ae08b79",
"name": "スタickyノート2"
},
{
"parameters": {
"content": "## 結果処理と応答\n\n成功および失敗の結果を処理し、webhook経由で応答を送信します。",
"width": 496,
"height": 480,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
768,
-352
],
"id": "e17032fd-3901-4c2a-aeea-4088c9f79bd4",
"name": "スタickyノート3"
},
{
"parameters": {
"httpMethod": "POST",
"path": "openclaw/scrape",
"responseMode": "responseNode",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2.1,
"position": [
-704,
-96
],
"id": "oc-909",
"name": "Webhookトリガー",
"webhookId": "oc-909-webhook",
"onError": "continueRegularOutput"
},
{
"parameters": {
"websiteURL": "={{ $json.body.websiteURL || 'https://example.com/protected-page' }}",
"websiteKey": "={{ $json.body.websiteKey || 'YOUR_SITE_KEY_HERE' }}",
"optional": {}
},
"type": "n8n-nodes-capsolver.capSolver",
"typeVersion": 1,
"position": [
-96,
-96
],
"id": "oc-910",
"name": "CAPTCHAを解決 [Webhook]"
},
{
"parameters": {
"method": "POST",
"url": "={{ $('Webhook Trigger').item.json.body.targetURL || 'https://example.com/protected-page' }}",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "user-agent",
"value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
},
{
"name": "content-type",
"value": "application/x-www-form-urlencoded"
}
]
},
"sendBody": true,
"contentType": "form-urlencoded",
"bodyParameters": {
"parameters": [
{
"name": "g-recaptcha-response",
"value": "={{ $json.data.solution.gRecaptchaResponse }}"
}
]
},
"options": {
"response": {
"response": {}
}
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.3,
"position": [
208,
-96
],
"id": "oc-911",
"name": "トークンを送信 [Webhook]"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": false,
"leftValue": "",
"typeValidation": "loose",
"version": 2
},
"conditions": [
{
"id": "if-2",
"leftValue": "={{ String($json.data || $json || '').includes($('Webhook Trigger').item.json.body.successMarker || 'recaptcha-success') }}",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
512,
-96
],
"id": "oc-912",
"name": "成功? [Webhook]"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "ws1",
"name": "success",
"value": "true",
"type": "boolean"
},
{
"id": "ws2",
"name": "pageText",
"value": "={{ $json.data || $json }}",
"type": "string"
},
{
"id": "ws3",
"name": "savedAt",
"value": "={{ new Date().toISOString() }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
816,
-224
],
"id": "oc-913",
"name": "Extract Result [Webhook]"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "wf1",
"name": "success",
"value": "false",
"type": "boolean"
},
{
"id": "wf2",
"name": "pageText",
"value": "={{ $json.data || $json }}",
"type": "string"
},
{
"id": "wf3",
"name": "error",
"value": "Response did not contain success marker",
"type": "string"
},
{
"id": "wf4",
"name": "savedAt",
"value": "={{ new Date().toISOString() }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
816,
-48
],
"id": "oc-914",
"name": "Mark Failed [Webhook]"
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={{ JSON.stringify($json) }}",
"options": {}
},
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.5,
"position": [
1120,
-96
],
"id": "oc-917",
"name": "Respond to Webhook"
}
],
"connections": {
"Webhook Trigger": {
"main": [
[
{
"node": "Solve CAPTCHA [Webhook]",
"type": "main",
"index": 0
}
]
]
},
"Solve CAPTCHA [Webhook]": {
"main": [
[
{
"node": "Submit Token [Webhook]",
"type": "main",
"index": 0
}
]
]
},
"Submit Token [Webhook]": {
"main": [
[
{
"node": "Success? [Webhook]",
"type": "main",
"index": 0
}
]
]
},
"Success? [Webhook]": {
"main": [
[
{
"node": "Extract Result [Webhook]",
"type": "main",
"index": 0
}
],
[
{
"node": "Mark Failed [Webhook]",
"type": "main",
"index": 0
}
]
]
},
"Extract Result [Webhook]": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Mark Failed [Webhook]": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"meta": {
"instanceId": "962ff0267b713be0344b866fa54daae28de8ed2144e2e6867da355dae193ea1f"
}
}
OpenClawの統合
OpenClawをこのワークフローに接続するには、トリガー スクリプトを作成し、登録します。
トリガー スクリプトの作成:
bash
cat > ~/.openclaw/scripts/extract-data << \'EOF\'
#!/usr/bin/env bash
curl -s -X POST http://127.0.0.1:3005/webhook/openclaw/scrape
EOF
chmod +x ~/.openclaw/scripts/extract-data
これはOpenClawが実行する唯一のものです。引数も、サイトキーも、URLもありません。ワークフローが何をスクレイプするかを知っています。
OpenClawがデータを取得する方法: スクリプトはn8nが終了するのを待つ(CapSolverの解決 + フォームの送信)後、Webhookの応答で
{ pageText, savedAt }を直接受け取ります。ファイルの読み込みは関与しません。HTTP経由で同期的にデータが戻ってきます。応答の構造はこのワークフローが返すものと同じです。必要に応じて他のフィールド(例: 解析された価格、ログインステータス、構造化されたJSONオブジェクト)を取得するには、Edit FieldsとSave Resultノードを編集して、ご使用ケースに必要なものを返すようにしてください。
TOOLS.mdにコマンドを登録:
~/.openclaw/workspace/TOOLS.mdを開き、OpenClawがコマンドを認識するように以下のエントリを追加してください:
markdown
### extract-data
実行: `/root/.openclaw/scripts/extract-data`
ライブパイプラインから最新の `{ pageText, savedAt }` を返します。JSON応答の `pageText` フィールドを返します。
AIエージェントの自動化フローをテスト
OpenClawからトリガーを発行します。AIエージェントにDiscord、Telegram、WhatsApp、または他のチャネル経由でこのコマンドを送信してください:
extract data
OpenClawは extract-data スクリプトを実行し、Webhookを発火して待機します。n8nはCAPTCHAを解決し、フォームを送信し、HTTP応答で { pageText, savedAt } を直接返します。OpenClawはその結果を受け取り、要約します。通常、10〜40秒程度で完了します。
ターミナルからテスト:
bash
curl -s -X POST http://127.0.0.1:3005/webhook/openclaw/scrape
ワークフローをあなたのターゲットサイトに適応させる
このガイドのワークフローは特定のデモサイト用に構築されています。実際のターゲットサイトでは、パイプラインのすべての部分が調整が必要になる場合があります。以下を確認してください:
1. CAPTCHAの種類
すべてのサイトがreCAPTCHA v2を使用しているわけではありません。CapSolverノードのタスクタイプをターゲットに合わせて変更してください:
| サイトで表示されるもの | n8n ノードの操作 |
|---|---|
| 「私はロボットではありません」チェックボックス | reCAPTCHA v2 |
| インビジブルreCAPTCHA(自動起動) | reCAPTCHA v2 |
| reCAPTCHA v3スコア | reCAPTCHA v3 |
| Cloudflare Turnstileウィジェット | Cloudflare Turnstile |
| Cloudflareチャレンジ(5秒のページ) | Cloudflare Challenge |
| GeeTestパズル(v3) | GeeTest V3 |
| GeeTestパズル(v4) | GeeTest V4 |
| DataDomeボット保護 | DataDome |
| AWS WAF CAPTCHA | AWS WAF |
| MTCaptcha | MTCaptcha |
また、サイトURLとサイトキーをターゲットに合わせて更新してください。サイトキーはページソースで見つけることができます(data-sitekey属性を検索するか、CapSolverブラウザ拡張機能が自動検出します)。
2. トークンの送信方法
これはサイトごとに最も大きく異なる部分です。このデモサイトは単純なフォームPOSTでトークンをボディフィールドに含めています。あなたのターゲットは異なる可能性があります:
フォームフィールドとして(最も一般的)
POST /submit
Content-Type: application/x-www-form-urlencoded
g-recaptcha-response=TOKEN&other_field=value
JSONボディとして
POST /api/login
Content-Type: application/json
{ "username": "...", "password": "...", "captchaToken": "TOKEN" }
ヘッダーとして
POST /api/action
X-Captcha-Token: TOKEN
クッキーとして
POST /submit
Cookie: cf_clearance=TOKEN
URLのクエリパラメータとして
GET /search?q=query&token=TOKEN
手動でターゲットサイトのCAPTCHAを解決するときにブラウザの開発者ツールのネットワークタブを確認してください。解決後にすぐに発生するリクエストを見つけて、トークンがどこに送信されるかを確認してください。
3. HTTPリクエストノード
トークンの送信方法が分かったら、HTTPリクエストノードをそれに合わせて構成してください:
- メソッド: サイトに合わせて(POST、GET、PUT)
- URL: フォームまたはAPIコールを受信する正確なエンドポイント
- ヘッダー: ブラウザのネットワークタブからヘッダーをコピーしてください — User-Agent、Referer、Origin、Accept、Content-Typeは通常必要とされます
- ボディ: エンドポイントに応じてform-urlencoded、JSON、またはmultipartを使用
- クッキー: サイトがセッションクッキーを使用している場合、ヘッダーとして渡すか、ログインステップでHTTPリクエストノードを使用して取得してください
4. 必要なデータの抽出
現在のワークフローでは、応答の完全なHTMLが pageText として渡されています。ご使用ケースに応じて、これを後処理する必要があります:
- HTTPリクエスト後のコードノードを追加してHTMLを解析し、特定のフィールド(製品名、価格、ステータス)を抽出
- n8nのHTML抽出ノードを使用して、コードを書かずに特定のCSSセレクターからデータを抽出
- ブランドHTMLではなく構造化されたフィールドを保存 — これにより、実行ごとのクエリと比較が容易になります
5. マルチステップフロー
いくつかのターゲットでは1つのリクエストでは不十分です:
- CSRFトークンまたはセッションクッキーを取得するためにページをGET
- CAPTCHAを解決
- CSRFトークン + CAPTCHAトークン + 資格情報を含むフォームをPOST
n8nで複数のHTTPリクエストノードをチェーンして処理してください。ノード間で $json 式を使用して値を渡してください。
問題解決
"n8nスクレイパーに到達できませんでした"
json
{"success": false, "error": "n8nスクレイパーに到達できませんでした。OpenClaw CAPTCHAスクレイパーのワークフローがアクティブになっていますか?"}
確認: n8nが実行中ですか?ワークフローが有効になっていますか?n8nを開き、ワークフローがActive(緑色のトグル)になっているか確認してください。
CapSolverタイムアウト / トークンが取得できなかった
可能性のある原因:
- 無効なAPIキー —
~/.n8n/credentialsを確認してください - サービス残高が不足 — capsolver.com/dashboard で残高を追加してください
- n8nサーバーとCapSolver API間のネットワーク問題
pageText が空またはエラーページを含んでいる
- HTTPリクエストのURLまたはフォームフィールド名がターゲットに合っていません
g-recaptcha-responseフィールド名を確認してください — 一部のサイトでは別のフィールド名を使用しています- HTTPリクエストノードで
fullResponse: trueを有効にしてステータスコードを確認してください
完全な構成リファレンス
n8nワークフローのノード概要
| ノード | タイプ | キー設定 |
|---|---|---|
| Webhook | n8n-nodes-base.webhook |
POST、パス: openclaw/scrape、responseMode: responseNode |
| サイトスクレイプ | n8n-nodes-capsolver.capSolver |
タスク: ReCaptchaV2TaskProxyless |
| HTTPリクエスト | n8n-nodes-base.httpRequest |
トークンをボディに含むターゲットURLへのPOST |
| If | n8n-nodes-base.if |
$json.data に "recaptcha-success" が含まれているか確認 |
| フィールド編集 | n8n-nodes-base.set |
pageText = $json.data |
| 結果を保存 | n8n-nodes-base.executeCommand または任意のストレージノード |
結果を保存(ファイル、DB、スプレッドシートなど) |
| Webhookに応答 | n8n-nodes-base.respondToWebhook |
JSON、continueOnFail: true |
CAPTCHAタスクタイプ
| CAPTCHA | n8n ノードの操作 |
|---|---|
| reCAPTCHA v2(チェックボックス) | reCAPTCHA v2 |
| reCAPTCHA v2(インビジブル) | reCAPTCHA v2 |
| reCAPTCHA v3 | reCAPTCHA v3 |
| Cloudflare Turnstile | Cloudflare Turnstile |
| Cloudflare Challenge | Cloudflare Challenge |
| GeeTest V3 | GeeTest V3 |
| GeeTest V4 | GeeTest V4 |
| DataDome | DataDome |
| AWS WAF | AWS WAF |
| MTCaptcha | MTCaptcha |
結論
OpenClaw + n8n + CapSolverのパイプラインは、以下のようなプロダクショングレードのデータ抽出設定を提供します:
- AIエージェントがWebhook経由で要求するときにオンデマンドで実行されます。
- ブラウザやディスプレイは必要ありません。
- CAPTCHA処理は完全に非表示になります — あなたやAIエージェントには見えません。
AIエージェントは単に「"extract data"」コマンドを発行し、クリーンなページコンテンツを受け取ります。CapSolverが難しい部分を処理し、n8nがフローを調整し、OpenClawがインターフェースとして機能します。
さっそく始めたいですか?CapSolverに登録し、初回チャージでOPENCLAWというボーナスコードを使用してください!
よくある質問
OpenClawにCapSolverやCAPTCHAについて伝える必要がありますか?
いいえ。OpenClawは単にHTTPリクエストを発火するスクリプトを実行するだけです。n8nがすべての処理を担当します。AIエージェントはCAPTCHAについて知らされていません — ただジョブをトリガーし、結果を読み取るだけです。
別のサイトに接続できますか?
はい、ただしURLだけを変更するだけではおそらくなりません。すべてのサイトはCAPTCHAトークンを異なる方法で送信します — 一部はフォームフィールド、一部はJSONボディ、一部はヘッダーまたはクッキーを使用します。上記の「ターゲットサイトにワークフローを適応させる」セクションを参照してください。
ターゲットがTurnstileを使用している場合どうなりますか?
CapSolverノードのタスクタイプを AntiTurnstileTaskProxyless に変更してください。その後、ターゲットのネットワークリクエストを確認して、Turnstileトークンがどこに送信されるかを確認してください — 通常は cf-turnstile-response という名前の隠しフォームフィールドに含まれますが、一部の実装ではJSONボディ、ヘッダー、またはクッキーに含まれることもあります。
どのくらいの結果が保存されますか?
保存方法に依存します。ローカルのJSONファイルでは、必要なだけ保存できます。Googleスプレッドシートやデータベースを使用する場合、実行ごとに無限に行が追加されます。Save Resultノードを、保存の必要に応じて設定してください。
クロニジョブからこのワークフローをトリガーできますか?
はい — Webhookエンドポイントは単なるHTTP POSTです。HTTPリクエストができるものであれば、すべてトリガーできます:
bash
curl -s -X POST http://127.0.0.1:3005/webhook/openclaw/scrape
1回の抽出にどのくらいのコストがかかりますか?
1回の実行で1つのCapSolverクレジットが使われます。reCAPTCHA v2は最も安価なタイプの1つです。現在の料金はcapsolver.comで確認してください。
OpenClawは無料ですか?
OpenClawはオープンソースで、自己ホスト可能です。AIモデルプロバイダーのAPIクレジットとCapSolverのCAPTCHA解決用クレジットが必要です。
コンプライアンス免責事項: このブログで提供される情報は、情報提供のみを目的としています。CapSolverは、すべての適用される法律および規制の遵守に努めています。CapSolverネットワークの不法、詐欺、または悪用の目的での使用は厳格に禁止され、調査されます。私たちのキャプチャ解決ソリューションは、公共データのクローリング中にキャプチャの問題を解決する際に100%のコンプライアンスを確保しながら、ユーザーエクスペリエンスを向上させます。私たちは、サービスの責任ある使用を奨励します。詳細については、サービス利用規約およびプライバシーポリシーをご覧ください。
もっと見る

企業自動化の向上:LLMを駆動とするインフラによるシームレスなCAPTCHA認識と運用効率
LLMを駆動するAIオートメーションインフラがCAPTCHA認識をどのように変革するかを発見してください。ビジネスプロセスの効率を向上させ、手動の介入を削減します。高度な検証ソリューションで自動化されたオペレーションを最適化してください。

Sora Fujimoto
30-Mar-2026

LLMトレーニングのためのデータ収集のスケーリング: CAPTCHAをスケールで解く
大規模言語モデルのトレーニングのためのデータ収集をスケールする方法を学びましょう。大規模にCAPTCHAを解くことで、AIモデル用の高品質なデータセットを構築するための自動化された戦略を発見しましょう。

Anh Tuan
27-Mar-2026

CAPTCHAを解決する方法 OpenBrowserで CapSolverを使用して (AIエージェントオートメーションガイド)
OpenBrowserでCAPTCHAを解くためにCapSolverを使用してください。AIエージェント用にreCAPTCHA、Turnstileなど簡単に自動化します。

Sora Fujimoto
26-Mar-2026

HyperBrowserで任意のCAPTCHAを解く方法: CapSolverを使用したフルセットアップガイド
HyperBrowserで任意のCAPTCHAをCapSolverで解決。reCAPTCHA、Turnstile、AWS WAFなども簡単に自動化できます。

Sora Fujimoto
26-Mar-2026

キャプチャの解決: 価格モニタリング用のAIエージェントのためのステップバイステップガイド
CapSolverを使って、価格モニタリング用AIエージェントのCAPTCHAを効果的に解く方法を学びましょう。このステップバイステップガイドは、途切れることのないデータ収集と強化された市場の洞察を保証します。

Sora Fujimoto
24-Mar-2026

NanoClawとCapSolverを使ってCAPTCHAを自動的に解く方法
CapSolverとNanoClawを使用して、reCAPTCHA、Turnstile、AWS WAF、その他のCAPTCHAを自動で解決するためのステップバイステップガイド。Claude AIエージェント、ゼロコード、および複数のブラウザに対応。

Emma Foster
20-Mar-2026


