选择 CapSolver 替代方案,最稳妥的做法分四步:
- 把正在用的任务类型逐一列出来。
- 用“目标站点真正接受的次数”计算每类任务的成本,不要只比标价。
- 逐项核对接口字段、代理参数、错误码和回调行为。
- 用 5%~10% 的流量和现有平台并行运行一段时间,再决定是否全量切换。
常见替代路线大致有三类:AI 识别加人工兜底的平台,例如 2Captcha;以纯自动化、高吞吐为主的平台,例如 CapMonster Cloud;以及提供统一 REST 接口、宣称兼容多家任务格式的服务,例如 NexCaptcha。哪一类更合适,主要取决于你的验证码类型、并发规模,以及迁移时能投入多少改造成本。
先确认:要解决的问题真出在平台上吗
很多团队考虑换平台,是因为“token 拿到了,提交还是失败”。在动手迁移前,需要先分清一点:打码平台返回 status: ready,只说明平台完成了计算、生成了 token。目标站点是否接受这个结果,是另一回事。
如果提交 token 时使用的代理 IP、User-Agent、TLS 特征或 Cookie,与生成 token 时的上下文对不上,目标风控仍可能判定无效。这种情况下换哪家平台,失败都可能继续出现。
建议先按 token 返回后验证失败的排查方法 逐层检查:
- token 是否已经超过有效时效;
- sitekey、pageurl、action 等参数是否正确;
- token 注入的位置和时机是否正确;
- 评分类验证码(如 reCAPTCHA v3)的得分要求;
- 代理是否一致。
排除这些因素后,如果问题仍集中在某些类型的延迟、失败率或价格上,再考虑替换。
第一步:盘点你在 CapSolver 上跑的任务
CapSolver 使用基于 JSON 的任务模型,请求体统一用 clientKey 认证。不同任务的返回方式不同:
- 普通图形验证码(如
ImageToTextTask):调用createTask后直接返回识别文本。 - token 类验证码(reCAPTCHA、Cloudflare Turnstile、GeeTest、DataDome 等):调用
createTask后先返回taskId,客户端再轮询getTaskResult,直到状态变为ready。
因此,盘点时不要只记“用了 reCAPTCHA”,而要细化到下面几项:
- 具体任务类型:reCAPTCHA v2、v3 还是 Enterprise;是否带代理(ProxyLess 与带代理版本是不同的任务)。
- Cloudflare 的形态:嵌入式 Turnstile 组件和整页 Challenge 的参数差别很大。普通 Turnstile 通常只需要 sitekey 和 pageurl。整页 Challenge 在部分平台上需要配合固定(static/sticky)代理,并提交 action、data、pagedata 等页面上下文。两者的区别可参考 Turnstile 和 5 秒盾的对比。
- 调用方式:同步拿结果,还是异步轮询,或者已经在用回调。
- 每类任务的量与要求:日调用量、峰值并发,以及业务能接受的最长等待时间。
这份清单决定了候选平台需要覆盖哪些类型。目录上写着“支持”不够,还要确认它是否支持你实际用到的那个变体。
第二步:了解三类替代路线的差异
下面的描述来自第三方评测文章和各平台的自述,不是我们的实测结论。
| 路线 | 代表 | 适合的场景 | 需要核验的点 |
|---|---|---|---|
| AI 识别 + 人工兜底 | 2Captcha | 验证码类型较杂、有长尾小众类型 | 耗时波动可能较大,要看 P95 而不只看平均值 |
| 纯自动化识别 | CapMonster Cloud | 类型集中、追求高并发批量处理 | 企业级防护类型需要逐项确认是否支持 |
| 统一接口 + 多格式兼容 | NexCaptcha | 希望少改代码、类型较多 | 兼容范围需要逐个任务验证 |
关于 NexCaptcha,官网公开说明如下:
- 使用统一的 REST 接口,包含
createTask、getTaskResult、getBalance三个方法,支持轮询和 webhook 回调;认证同样放在 body 的clientKey中。 - 首页列出 33 种报价类型,覆盖 reCAPTCHA v2/v3/Enterprise、hCaptcha、Turnstile/Challenge、GeeTest v3/v4、FunCaptcha/Arkose、DataDome、AWS WAF,以及多种图形、滑块和点选验证码。
- 按千次成功识别计费,失败退款,并宣称兼容 CapSolver、2Captcha 等平台的部分任务格式。
需要注意,这些都是站方说明。“部分兼容”的具体范围,必须在迁移时逐项确认。
如果你的痛点也包括从 2Captcha 迁移,可以参考 2Captcha 替代方案的迁移步骤,两篇的检查思路是通用的。
第三步:算“每千次业务接受成本”,不要只比标价
各平台的标价单位通常是“美元/千次”,但扣费口径并不相同。有的按成功返回计费,有的对平台判定的失败退款。目标站点拒收的 token 通常不在退款范围内。
比较时,建议统一使用下面的公式:
有效成本 = 实际被扣费金额 ÷ 被目标站点接受的次数 × 1000
下面是一个纯假设的算例,只用来演示计算方法:
- 平台 A:标价 1.00 美元/千次。1000 次提交全部扣费,目标站点接受 850 次。有效成本 ≈ 1.18 美元/千次。
- 平台 B:标价 1.20 美元/千次。50 次平台失败已退款,实际扣费 950 次,目标站点接受 900 次。有效成本 ≈ 1.27 美元/千次。
在这个假设里,标价更低的 A 有效成本也更低。但如果 A 的接受率降到 75%,结论就会反过来。所以,必须用你自己的流量去测。
另外三项成本也要算进去:
- 失败后重试带来的额外调用;
- 等待时间对数据新鲜度的影响;
- 迁移和维护所需的工时。
更完整的扣费口径说明,见 验证码 API 按千次怎么计费。
第四步:逐项核对迁移字段
即使新平台宣称兼容 CapSolver 的格式,也不要假设“只改域名就能 100% 可用”。建议逐个任务核对以下内容:
- 接口地址与密钥:替换为新平台的 API 域名和
clientKey。密钥放在环境变量或密钥管理服务里,不要写进代码仓库。 - task.type 名称:包括大小写,以及带代理与无代理版本的命名。比如
ReCaptchaV2TaskProxyLess在对方文档里叫什么,要逐个对照。 - 代理参数格式:代理是拆成多个字段,还是合成一个字符串;协议、认证信息怎么写。
- 附加上下文字段:例如 Turnstile/Challenge 的 action、data、pagedata,reCAPTCHA v3 的 pageAction 和最低分数要求。
- 返回结构:token 在 solution 里的字段名;是否附带 userAgent 等需要同步使用的值。
- 错误码映射:余额不足、参数错误、任务超时、无法识别等情况,在两边的代码和含义是否一致。自己的重试逻辑依赖这些判断。
- 轮询与回调:建议的轮询间隔、任务最长存活时间,以及 callbackUrl 的请求格式。轮询和回调各自适合什么情况,可参考 轮询与回调的区别。
最省事的做法,是在代码里加一层薄的适配层,让业务代码不直接依赖某一家的字段。下面是示意伪代码,不是任何平台可直接运行的 SDK:
provider = load_config('CAPTCHA_PROVIDER') # 'current' 或 'candidate'
task = build_task(provider, captcha_kind, page_context, proxy)
task_id = provider.create_task(client_key=env('PROVIDER_KEY'), task=task)
result = wait_result(provider, task_id, interval=3s, timeout=120s)
ok = submit_to_target(result.token, same_session, same_proxy)
log(provider, captcha_kind, latency, result.status, ok, cost)其中有两个关键点:
- 使用 token 的浏览器会话和代理,要与生成 token 时保持一致;
- 日志里必须同时记录“平台状态”和“目标站点是否接受”,否则后面的对比无从计算。
第五步:小流量双跑,再决定是否切换

具体做法如下:
- 选择测试环境:使用自有系统,或已获得授权的目标环境。
- 分配流量:按任务类型,把 5%~10% 的流量分给候选平台,其余继续走 CapSolver。
- 保持条件一致:时间段、代理池和浏览器配置尽量相同,避免把环境差异算到平台头上。
按类型分别统计:
- 平台返回率;
- 目标站点接受率(分母写清楚,是全部提交次数还是平台成功次数);
- P50 和 P95 延迟(不要和平均值混用);
- 有效成本。
- 决定切换范围:只切换表现更好的那些类型。其余类型可以保留原平台,或继续观察。
很多团队最后采用多平台并存的方案,例如主平台加一个备用平台。这通常比一次性全量替换更稳。选型思路的完整版本,可以看 验证码识别 API 怎么选的六步判断。
什么情况下不必急着换
以下几种情况,换平台的收益可能不明显:
- 失败主要来自自己的链路:例如代理和会话不一致、token 过期后才注入。
- 只是自有系统的 CI 回归测试:验证码厂商提供的官方测试密钥通常就能满足需要,不必为此接入付费识别服务。可参考 Playwright 验证码测试的做法。
- 业务量很小:迁移和验证的工时,可能超过换平台节省下来的费用。
如果完成上面的盘点和成本测算后,你想把 NexCaptcha 列入双跑候选,可以在 NexCaptcha 首页 查看验证码类型、报价和迁移说明,并通过工程师联系入口确认你所用任务类型的字段映射。确认之后,再安排小流量测试。