CAPSOLVER
博客
如何在n8n中使用CapSolver:解决您的工作流程中CAPTCHA的完整指南

如何在 n8n 中使用 CapSolver:解决工作流程中的 CAPTCHA 的完整指南

Logo of CapSolver

Emma Foster

Machine Learning Engineer

18-Mar-2026

CapSolver 与 n8n 集成用于验证码解决和工作流自动化

每个自动化工程师都会遇到同样的障碍:你构建了一个完美的工作流,进行网络爬取、登录或表单提交——但验证码会立即阻止你。例如,reCAPTCHA 会让你的数据提取工作变得困难,Cloudflare 挑战会阻止你的请求,滑块谜题会阻止你访问所需的 API。

如果你能在 n8n 工作流中直接解决所有主要的验证码类型,而无需自定义脚本或复杂的集成,会怎么样?

n8n 是一个工作流自动化平台,提供 400 多个集成,可自托管或云部署,允许你通过无代码或低代码方式可视化构建强大的自动化流程。CapSolver 是一个领先的 AI 驱动的验证码解决服务,支持 reCAPTCHA v2/v3、Cloudflare Turnstil/Challenge、GeeTest、AWS WAF、ImageToText 等,作为 官方 n8n 节点 提供,你可以在工作流中直接使用。

它们结合在一起,可以无缝解决验证码,并在一个地方构建爬取管道、登录自动化和表单工作流,本指南是您在 n8n 中使用 CapSolver 的完整参考。

n8n 中的所有 CapSolver 操作

CapSolver 的 n8n 节点支持按两种资源类型组织的多个操作:令牌识别。了解它们的区别至关重要——这决定了节点的行为方式、需要的参数以及如何使用结果。

令牌操作 (7) — 异步,轮询结果

令牌操作解决保护网站的验证码。您提供目标 URL 和验证码参数,CapSolver 在后台创建一个任务,轮询直到解决,并返回一个 令牌(或 cookie),您将其提交到网站——就像浏览器一样。

操作 验证码服务 是否需要代理 关键参数 详细指南
reCAPTCHA v2 reCAPTCHA 可选 websiteURL, websiteKey reCAPTCHA 指南
reCAPTCHA v3 reCAPTCHA 可选 websiteURL, websiteKey, pageAction reCAPTCHA 指南
Cloudflare Turnstile Cloudflare websiteURL, websiteKey Turnstile 指南
Cloudflare Challenge Cloudflare websiteURL, proxy, userAgent Cloudflare Challenge 指南
GeeTest V3 GeeTest websiteURL, gt, challenge GeeTest V3 指南
GeeTest V4 GeeTest websiteURL, captchaId GeeTest V4 指南
AWS WAF Amazon WAF 可选 websiteURL AWS WAF 指南

识别操作 (4) — 即时结果,无需轮询

识别操作分析图像或视觉谜题。您直接发送图像数据,CapSolver 会 立即 返回结果——无需创建任务,无需轮询。这些用于需要从图像验证码中读取文本或解决视觉挑战(如滑块谜题)的情况。

操作 目的 关键参数 详细指南
图像转文本 OCR — 从验证码图像中读取文本 body(base64),module 图像转文本指南
reCAPTCHA v2(识别) 分类 reCAPTCHA 图像挑战 image, question --
AWS WAF(识别) 分类 AWS WAF 图像挑战 question, images --
视觉引擎 解决视觉谜题(滑块、旋转、目标检测) module, image, imageBackground 视觉引擎指南

注意: reCAPTCHA v2 和 AWS WAF 识别操作在 CapSolver 节点下拉菜单中作为 识别 资源类型出现——它们与同名的令牌操作不同。令牌版本生成验证令牌;识别版本分类图像挑战。


在 n8n 中设置 CapSolver

CapSolver 作为 官方集成 在 n8n 中提供——无需安装社区节点。您可以在构建工作流时直接在节点面板中找到它。

由于它是官方集成,您需要在 n8n 中 创建凭证,以便 CapSolver 节点可以与您的帐户进行身份验证。

步骤 1:打开凭据页面

转到您的 n8n 实例并导航到 设置 -> 凭据。您将在此处看到所有配置的凭据。

n8n 凭据页面显示 CapSolver 帐户

步骤 2:创建 CapSolver 凭据

  1. 点击 创建凭据(右上角)
  2. 搜索 "CapSolver" 并选择 CapSolver API
  3. 输入您的 API 密钥——直接从 CapSolver 仪表板 复制
  4. 允许的 HTTP 请求域名 保留为 全部(默认)
  5. 点击 保存

n8n 会自动测试连接。您应该看到一个绿色的 "连接测试成功" 横幅,确认您的 API 密钥有效。

CapSolver 凭据配置与成功的连接测试

重要提示: 您工作流中的每个 CapSolver 节点都会引用此凭据。您只需创建一次——所有您的求解器工作流将共享同一凭据。


令牌与识别:理解两种资源类型

CapSolver 的 n8n 节点将操作按两种资源类型组织。选择正确的类型决定了节点的行为方式以及您将获得的结果类型。

令牌(异步)

令牌操作遵循 创建任务 -> 轮询 -> 获取结果 模式:

  1. 您提供目标网站 URL 和验证码特定参数(站点密钥、代理等)
  2. CapSolver 在后台创建一个求解任务
  3. 节点轮询 CapSolver 的 API 直到任务完成(通常为 5-30 秒)
  4. 您收到一个 令牌cookie响应字符串,您将其提交到目标网站

结果始终是您 发送回网站 的内容——例如 reCAPTCHA 的 gRecaptchaResponse 令牌、Cloudflare Challenge 的 cf_clearance cookie、Turnstile 的 token 等。

何时使用令牌: 任何时候您需要绕过保护网页、API 端点或表单提交的验证码。这涵盖了大多数现实世界的自动化场景。

识别(即时)

识别操作遵循 创建任务 -> 立即获取结果 模式:

  1. 您提供图像(base64 编码)或视觉谜题数据
  2. CapSolver 分析图像并在单个请求-响应周期内返回结果
  3. 您收到 文本(用于 OCR)、坐标(用于点击式挑战)或 测量值(用于滑块/旋转谜题)

无需轮询——结果立即返回。

何时使用识别: 当您需要从验证码图像中读取文本、分类图像挑战或解决滑块或旋转挑战等视觉谜题时。这些操作直接处理图像数据——它们不与任何网站交互。

快速比较

特性 令牌 识别
工作方式 创建任务 -> 轮询 -> 获取结果 创建任务 -> 立即获取结果
典型解决时间 5-30 秒 少于 1 秒
输入 网站 URL + 验证码参数 base64 图像
输出 令牌、cookie 或响应字符串 文本、坐标或测量值
代理支持 是(可选或必需)
使用场景 绕过网站验证码保护 读取/分类/解决图像谜题

选择正确的操作

不确定使用哪种操作?根据目标网站上的内容遵循此决策指南。

看到 Google 保护网站上的复选框(“我不是机器人”)或不可见的挑战?
-> reCAPTCHA v2(复选框)或 reCAPTCHA v3(不可见/基于评分)。在 reCAPTCHA 脚本 URL 的 render= 中检查页面源代码——如果包含直接的站点密钥,可能是 v3。如果在 div 元素上看到 data-sitekey,则是 v2。

看到“验证您是人类…”或“检查您的浏览器…”的全屏屏幕?
-> Cloudflare Challenge。这是一个全屏插页式广告——不是小部件。它需要代理。请参阅专用的 Cloudflare Challenge 指南以获取详细信息。

看到带有旋转复选框的小嵌入式小部件(非全屏)?
-> Cloudflare Turnstile。查找带有 data-sitekeydiv 和来自 challenges.cloudflare.com 的脚本。

看到需要将一块拖到正确位置的滑块谜题?
-> 可能是 GeeTest V3GeeTest V4DataDome 或通用滑块。打开 DevTools 并检查网络请求:GeeTest 请求发送到 api.geetest.comgcaptcha4.geetest.com;DataDome 请求发送到 *.datadome.co。如果是一个与特定服务无关的通用滑块,请使用 Vision Engineslider_1 模块。

看到文本/数字图像验证码(扭曲的字母或数字)?
-> 图像转文本。捕获图像,将其转换为 base64,然后发送到识别资源。

看到旋转谜题(将图像旋转到正确方向)?
-> 使用 rotate 模块的 Vision Engine

看到目标检测挑战(点击特定对象)?
-> 使用适合挑战类型的 Vision Engine 模块。

在电商平台看到“按住并拖动”或谜题挑战?
-> 在 DevTools 中检查 DataDome 或 AWS WAF 请求模式。DataDome 挑战从 *.datadome.co 加载。AWS WAF 挑战的脚本 URL 包含 awswaf

不确定网站使用哪种验证码类型?
-> 安装 CapSolver 浏览器扩展。打开 DevTools,转到 "CapSolver Captcha Detector" 选项卡,并触发验证码。扩展会自动识别验证码类型并显示所有必需参数。


常见工作流模式

n8n 中的每个验证码求解工作流都遵循四种模式之一。了解这些模式意味着您可以为任何验证码类型构建工作流——只需交换 CapSolver 操作并调整参数即可。

模式 1:求解器 API

一个可重用的 API 端点,接受验证码参数并返回求解的令牌。其他工具、脚本或工作流在需要求解验证码时调用此端点。

复制代码
Webhook(接收请求)
  -> CapSolver(求解验证码)
    -> IF(检查错误)
      -> 向 Webhook 响应(返回令牌或错误)

最适合: 构建一个集中式验证码求解服务,多个系统可以调用。您只需配置一次,任何可以发送 HTTP 请求的工具都可以使用它。

模式 2:抓取管道

一个计划性或按需工作流,求解验证码,获取受保护的数据,提取字段,与之前值进行比较,并在发生更改时发出警报。

复制代码
计划/Webhook(触发)
  -> 设置目标配置(URL、密钥、代理)
    -> CapSolver(求解验证码)
      -> HTTP 请求(使用令牌获取受保护页面)
        -> HTML/代码(提取数据)
          -> 代码(与存储的数据进行比较)
            -> IF(数据已更改?)
              -> 构建警报/无更改

最适合: 价格监控、库存跟踪、竞争对手分析——任何需要定期抓取验证码保护页面并检测更改的场景。

模式 3:登录自动化

一个工作流,求解验证码,提交登录凭证,并验证登录是否成功。

复制代码
计划/Webhook(触发)
  -> 设置登录配置(URL、密钥、凭证)
    -> CapSolver(求解验证码)
      -> HTTP 请求(POST 凭证 + 令牌)
        -> IF(登录成功?)
          -> 标记成功/标记失败

最适合: 保持会话活跃、自动账户监控,或任何需要通过验证码保护的登录表单进行身份验证的流程。


示例工作流:reCAPTCHA v2 求解器 API

以下工作流实现 模式 1:求解器 API —— 一个简单的 5 节点 Webhook 端点,求解 reCAPTCHA v2 并返回令牌。这是最简单的 CapSolver 工作流,可作为任何令牌操作的模板。

工作流流程

复制代码
接收求解请求(Webhook)
  -> 求解验证码(CapSolver reCAPTCHA v2)
    -> CapSolver 错误?(IF 节点)
      -> 向 Webhook 响应(错误)/ 向 Webhook 响应(成功)

工作原理

  1. 接收求解请求 —— 一个 Webhook 节点监听包含 websiteURLwebsiteKey 的 POST 请求
  2. 求解验证码 —— CapSolver 节点使用提供的参数求解 reCAPTCHA v2 挑战
  3. CapSolver 错误? —— 一个 IF 节点检查 CapSolver 响应是否包含错误
  4. 向 Webhook 响应 —— 成功时返回求解的令牌,失败时返回错误消息

任何令牌操作的模板: 此工作流适用于任何 9 个令牌操作——只需更改 CapSolver 节点中的 操作 下拉菜单(例如,从 "reCAPTCHA v2" 改为 "Cloudflare Turnstile")并相应调整输入参数。Webhook -> 求解 -> 检查 -> 响应模式保持不变。

点击展开工作流 JSON
json 复制代码
{
  "name": "CapSolver — reCAPTCHA v2 求解器 API",
  "nodes": [
    {
      "parameters": {
"content": "## reCAPTCHA v2 求解器 API\n\n**任何 Token 操作的模板。** 在 CapSolver 节点中更改操作下拉菜单以解决不同的验证码类型。\n\n**如何使用:**\n1. 在“设置 → 凭据”下添加您的 CapSolver API 密钥\n2. 激活工作流\n3. 向 webhook URL 发送 POST 请求,并在正文中包含 `websiteURL` 和 `websiteKey`\n4. 在响应中接收求解的 token\n\n**适应其他操作:**\n- Cloudflare Turnstile → 更改操作,使用相同参数\n- reCAPTCHA v3 → 更改操作,添加 `pageAction`\n- Cloudflare Challenge → 更改操作,添加 `proxy` 和 `userAgent`\n- GeeTest V3 → 更改操作,添加 `gt` 和 `challenge`\n- GeeTest V4 → 更改操作,添加 `captchaId`\n- DataDome → 更改操作,使用 `captchaUrl` 代替\n- AWS WAF / MTCaptcha → 更改操作,调整参数",
        "height": 480,
        "width": 460,
        "color": 1
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -680,
        -280
      ],
      "id": "ov000000-0000-4000-8000-000000000001",
      "name": "便签"
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "capsolver-recaptcha-v2",
        "responseMode": "responseNode",
        "options": {}
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2.1,
      "position": [
        -200,
        0
      ],
      "id": "ov000000-0000-4000-8000-000000000002",
      "name": "接收求解请求",
      "webhookId": "ov000000-aaaa-bbbb-cccc-000000000002",
      "onError": "continueRegularOutput"
    },
    {
      "parameters": {
        "operation": "reCAPTCHA v2",
        "websiteURL": "={{ $json.body.websiteURL }}",
        "websiteKey": "={{ $json.body.websiteKey }}",
        "type": "ReCaptchaV2TaskProxyLess",
        "proxy": ""
      },
      "type": "n8n-nodes-capsolver.capSolver",
      "typeVersion": 1,
      "position": [
        100,
        0
      ],
      "id": "ov000000-0000-4000-8000-000000000003",
      "name": "求解验证码",
      "credentials": {
        "capSolverApi": {
          "id": "YOUR_CREDENTIAL_ID",
          "name": "CapSolver 账户"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "err-check-001",
              "leftValue": "={{ $json.data?.errorId !== undefined && $json.data?.errorId !== 0 }}",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        400,
        0
      ],
      "id": "ov000000-0000-4000-8000-000000000004",
      "name": "CapSolver 错误?"
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ JSON.stringify({ success: false, error: $json.data?.errorDescription || '未知的 CapSolver 错误', errorId: $json.data?.errorId }) }}",
        "options": {
          "responseCode": 502
        }
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.5,
      "position": [
        700,
        -100
      ],
      "id": "ov000000-0000-4000-8000-000000000005",
      "name": "响应 Webhook(错误)"
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ JSON.stringify({ success: true, token: $json.data?.solution?.gRecaptchaResponse, taskId: $json.data?.taskId }) }}",
        "options": {}
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.5,
      "position": [
        700,
        100
      ],
      "id": "ov000000-0000-4000-8000-000000000006",
      "name": "响应 Webhook"
    }
  ],
  "connections": {
    "接收求解请求": {
      "main": [
        [
          {
            "node": "求解验证码",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "求解验证码": {
      "main": [
        [
          {
            "node": "CapSolver 错误?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "CapSolver 错误?": {
      "main": [
        [
          {
            "node": "响应 Webhook(错误)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "响应 Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  }
}

最佳实践

这些提示适用于所有验证码类型和工作流模式。

使用 CapSolver 浏览器扩展来识别验证码参数。 不要猜测网站使用的验证码类型或手动在页面源代码中搜索站点密钥。安装 CapSolver 浏览器扩展,打开 DevTools,并触发验证码——扩展会自动识别类型并显示所有必需的参数。

首先使用无代理任务类型;仅在需要时添加代理。 大多数 Token 操作都提供代理和无代理变体。无代理更简单(参数更少,无代理成本),适用于大多数网站。仅在无代理版本失败或验证码类型需要时(Cloudflare Challenge 和 DataDome 始终需要代理)切换到基于代理的任务类型。

为 Cloudflare Challenge 和 DataDome 使用住宅代理。 数据中心代理更便宜,但经常被严格的反机器人系统阻止。如果在需要住宅 IP 的网站上使用数据中心代理,CapSolver 将返回错误 1002 或将任务标记为“无法解决”。对于这两种验证码类型,使用住宅或移动代理。

使用 IF 节点设置错误处理。 在 CapSolver 节点后始终添加一个 IF 节点以在继续之前检查错误。CapSolver 在成功时返回 errorId: 0,在失败时返回非零 errorIderrorDescription。单独路由错误可防止工作流中的级联失败。

使用“设置字段”节点集中配置。 不要在每个节点中硬编码目标 URL、站点密钥和代理字符串。在工作流开始处使用一个“设置”节点来定义所有配置。这使更新参数、在目标之间切换或为不同网站复制工作流变得容易。

立即提交令牌——它们会过期。 大多数验证码令牌的有效期为 60-120 秒。在 CapSolver 节点和提交令牌的 HTTP 请求节点之间不要添加不必要的延迟。如果您正在构建求解器 API,请确保客户端在收到令牌后立即提交。

首先使用 webhook 路径进行测试,然后启用计划。 详细指南中的所有用例工作流都包括一个计划触发器(用于定期运行)和一个 Webhook 触发器(用于按需测试)。首先使用 webhook 路径验证一切正常,然后激活工作流以启用计划。

在 DevTools 中检查实际表单提交。 解决验证码只是工作的一半——您还需要以浏览器的方式提交令牌。打开 DevTools -> Network 标签,手动在浏览器中解决验证码,并检查发送的请求。检查字段名称(不一定是 g-recaptcha-response)、请求方法、内容类型和端点 URL。

准备好了吗? 注册 CapSolver 并使用优惠码 n8n 在首次充值时获得额外 8% 的奖励!

CapSolver 奖励代码横幅


结论

CapSolver n8n 节点为您提供对 13 种验证码求解操作 的访问权限,涵盖 2 种资源类型——覆盖您在野外遇到的每个主要验证码服务。无论您处理的是 reCAPTCHA、Cloudflare、GeeTest、DataDome、AWS WAF、MTCaptcha 还是基于图像的挑战,都有一个专用操作可供使用。

每个工作流遵循以下三种模式之一:求解器 API抓取流水线。一旦了解模式,只需更改操作下拉菜单并调整参数,即可为不同验证码类型构建新工作流。

有关任何特定验证码类型的分步说明,请使用上面操作表中链接的详细指南。每个指南都包含完整的、可导入的求解器 API、抓取流水线和登录自动化的 workflow JSON。

提示: 这些工作流使用计划 + Webhook 触发器,但您可以将触发器节点替换为任何 n8n 触发器——手动、应用事件、表单提交等。获取数据后,使用 n8n 的内置节点将结果保存到 Google Sheets、数据库、云存储,或通过 Telegram/Slack/邮件发送警报。

常见问题

CapSolver 是 n8n 的官方集成吗?

是的。CapSolver 作为 官方节点 在 n8n 的内置节点库中可用。您不需要安装任何社区节点——只需在节点面板中搜索“CapSolver”即可使用。唯一需要的设置是创建一个包含您的 CapSolver API 密钥的凭据。

哪些验证码类型需要代理?

Cloudflare ChallengeDataDome 始终需要代理——没有无代理选项。所有其他 Token 操作(reCAPTCHA v2/v3、Cloudflare Turnstile、Challenge、GeeTest V3/V4、AWS WAF、)提供无代理变体,无需代理即可使用。识别操作(图像转文本、视觉引擎)从不需要代理。

Token 和识别之间有什么区别?

Token 操作解决保护网站的验证码——它们返回您提交到网站的令牌或 cookie。它们是异步的(创建任务、轮询、获取结果),耗时 5-30 秒。识别 操作分析图像——它们立即返回文本、坐标或测量值。Token 覆盖 13 个操作中的 9 个;识别覆盖 4 个。

CapSolver 与 n8n Cloud 兼容吗?

是的。这些工作流适用于自托管的 n8n 和 n8n Cloud。CapSolver 节点已在 n8n Cloud 的节点库中——只需添加您的 API 凭据即可。

CapSolver 的费用是多少?

定价因验证码类型而异。reCAPTCHA v2 每 1000 次求解起价 0.4;由于复杂性,Cloudflare Challenge 和 DataDome 更贵。图像转文本和视觉引擎识别任务通常是最便宜的。查看 CapSolver 定价页面 以获取当前费率。使用优惠码 n8n 在首次充值时获得 8% 的奖励。

如何确定网站使用的是哪种验证码?

最快的方法是使用 CapSolver 浏览器扩展。安装它,在目标页面上打开 DevTools,转到“CapSolver Captcha Detector”选项卡,并触发验证码。扩展会自动识别验证码类型并显示所有必需的参数(站点密钥、API 域名、挑战 ID 等)。或者,您可以手动检查页面源代码和网络请求——查找包含 recaptchaturnstilegeetestdatadomeawswaf 的脚本 URL。

是否可以在一个工作流中解决多个验证码类型?

是的。您可以在单个工作流中添加多个 CapSolver 节点,每个节点配置为不同的操作。例如,工作流可能在登录页面上解决 Cloudflare Turnstile 挑战,然后在已认证会话内的表单上解决 reCAPTCHA v2 挑战。每个 CapSolver 节点独立运行——只需确保每个节点都正确配置了操作和参数。

如果 CapSolver 返回了令牌但网站拒绝它怎么办?

有几个可能的原因。首先,令牌会快速过期(60-120 秒)——确保在解决后立即提交。其次,确认您将令牌发送到正确的端点和字段名:检查浏览器在提交表单时实际发送的网络请求(DevTools -> Network 标签)并确认一切匹配。第三,某些网站需要额外的参数(如 reCAPTCHA Enterprise 的 enterprisePayload、Turnstile 的 metadata.action 或特定的标头/cookie)。使用 CapSolver 扩展检查这些是否适用。第四,对于 Cloudflare Challenge 和 DataDome,检查专用指南——这些类型有额外要求(代理、用户代理匹配等)。如果令牌仍被拒绝,联系 CapSolver 支持 以获得帮助。

合规声明: 本博客提供的信息仅供参考。CapSolver 致力于遵守所有适用的法律和法规。严禁以非法、欺诈或滥用活动使用 CapSolver 网络,任何此类行为将受到调查。我们的验证码解决方案在确保 100% 合规的同时,帮助解决公共数据爬取过程中的验证码难题。我们鼓励负责任地使用我们的服务。如需更多信息,请访问我们的服务条款和隐私政策。

更多