先说结论:按这个顺序判断,能少返工一轮
一句话:先确定你实际遇到的验证码类型和交互深度,再用真实样本量出目标站点的接受率,最后才比单价。顺序颠倒过来,多数团队会在上线两周后重新选一遍。
可执行的六步:
- 列出生产环境真正遇到的验证码类型,而不是候选服务的支持列表;
- 判断这些类型是否需要 IP / 会话绑定;
- 在自有或获授权环境跑小流量对照,统计“目标站点接受”的比例;
- 看 P50 和 P95,不看平均值,并把端到端环节算进去;
- 按“完成一次业务”折算成本,而不是按千次标价;
- 最后评估接入工作量和将来换供应商的代价。
下面按这个顺序展开,每步说清为什么这么判断。
第一步:把“验证码类型”拆到能对号入座
“支持验证码识别”这句话在不同产品里指的事情差别很大。按输入输出形态,大致分三类:
- 纯图像 / 字符 OCR:传统图片验证码、字符串、算式。输入是一张图,输出是字符串,和你的会话几乎无关。
- Token 型行为验证:reCAPTCHA v2/v3/Enterprise、hCaptcha、Cloudflare Turnstile、GeeTest v3/v4、FunCaptcha/Arkose 等。输入是页面参数(站点密钥、页面地址等),输出是一个待提交的凭证或坐标序列,成功与否取决于目标站服务端怎么校验它。
- 整页挑战与企业级 WAF:Cloudflare 的整页 Challenge、AWS WAF、DataDome 等。产出通常是一组 Cookie 或凭证,必须和你后续请求的上下文配套使用。注意 Turnstile 组件和 Cloudflare 整页 Challenge 不是一回事,前者是嵌在表单里的验证控件,后者会拦住整个页面,二者在候选服务里往往是两个不同的任务类型。

这一步的产出应该是一张自己的清单:每条写明“站点/场景 + 验证码类型 + 出现频率 + 触发条件”。没有这张清单,后面所有比较都是在比广告词。对 reCAPTCHA 这类 token 任务的校验链路不熟悉,可以先看谷歌 reCAPTCHA 是怎么工作的,以及如何用打码 API 做成全自动链路,再回来做类型核对。
第二步:确认是否需要代理绑定
这是最容易被忽略、又最容易导致“识别成功但站点不放行”的一条。
对 Cloudflare Challenge、AWS WAF、DataDome 这类机制,产出的通行凭证在服务端往往与发起解题的客户端出口 IP 绑定(CapMonster Cloud 文档 2026-08-23 的 FAQ、以及 Bright Data 2026-01-21 的评测文章都提到这一点)。也就是说,解题时用的是机房 A 的 IP,你的爬虫或 Playwright 流水线用机房 B 的 IP 提交,凭证在校验阶段会直接失效。
因此选型时要明确两件事:候选服务是否支持在任务里传入你自备的代理;如果不支持,它给出的凭证适用于哪些类型。纯 OCR 和多数 token 任务通常不需要代理参数,WAF 类几乎一定需要——不要把一种类型的规则套到全部类型上。
第三步:把“接口返回成功”和“目标站点放行”分开统计
接口返回 HTTP 200 并附带一个 token,只说明识别服务完成了它那一段。任务是否真的完成,要看目标站点的最终判定。典型的不一致情形:
- reCAPTCHA v3 返回的凭证分数偏低,而目标站把阈值设在较高位置(各站自定,常见做法是 0.5 以上,风控严格的会更高),请求仍被拦;
- Turnstile 凭证拿到了,但提交时缺少与之匹配的浏览器上下文和行为特征;
- 点选类结果坐标正确,但提交耗时超过了页面自身的凭证有效期。
建议在评估表里固定三个分子分母不同的指标:结果返回率(服务给出可用结果的比例)、目标站点接受率(提交后被放行的比例)、业务完成率(拿到正确数据或完成下单等最终动作的比例)。采购决策只看第二、第三个。这也是 CapSolver 选型指南(2026-04-02)和 2Captcha 的基准文章(2026-05-25)都在强调的区分点——这两篇分别出自竞争双方,结论要交叉看,但这个口径本身是对的。

第四步:延迟看分位数,并算端到端
宣传里的“平均耗时”会被大量极快任务拉平,真正让脚本超时的是长尾。请要求或自行测量 P50 与 P95,两者不能混称,平均值也不能当 P50 用。
端到端耗时还要包含:创建任务的一次往返、轮询 getTaskResult 的间隔累积(或 webhook 回调的到达时间)、把结果注入页面并提交的时间。轮询间隔设置不当,本身就能给每个任务凭空加上几秒。
架构差异会直接反映在这条上。纯模型识别的服务(第三方基准文章与 CapSolver、CapMonster 自述中,多落在数百毫秒到数秒量级)适合高并发、低延迟流水线;含人工众包环节的模式在冷门变种、复杂逻辑点选和语音验证上更灵活,但耗时通常要长一个量级。HasData 的公开基准仓库和 2026-02-16 的对比文章可以作为思路参考,但它们的样本、时间窗口和站点组合未必与你的场景重合,不能直接当成你的预期值。
第五步:按“完成一次业务”折算成本
千次标价是最容易比、也最容易比错的一项。先确认三件事:计费按请求次数还是按成功识别次数;失败是否退款、怎么申诉;不同验证码类型的单价是否分档(通常分档,WAF 与企业级类型明显更贵)。
一个说明思路的假设算例(数字仅为演示,不是任何产品报价):某类型标价 a 元/千次成功识别,目标站点接受率 70%,则每完成 1000 次业务动作需要约 1429 次成功识别,识别成本约 1.43a;另一家标价 0.7a,但接受率只有 45%,需要约 2222 次成功识别,成本约 1.56a——还没算多出来的代理流量、重试占用的并发和工程排障时间。低价配低接受率,综合成本经常反超。
所以比价要统一到同一类型、同一币种单位、相近的统计窗口,并在表里额外留两列:重试带来的代理消耗、失败任务是否计费。
第六步:接入与迁移成本
现在主流做法是异步任务制:创建任务拿 taskId,再轮询结果或等回调。差异藏在细节里——任务类型名的大小写、参数名、错误码语义、回调签名方式、余额与账单口径。
部分服务声明兼容 2Captcha、Anti-Captcha 等的请求格式,这能省事,但兼容声明和已验证兼容的范围要分开写进你的评估表。实际迁移时逐任务确认:字段名与嵌套结构、任务类型字符串、SDK 版本、回调地址与重试策略、错误码映射、计费与扣费流水的对应关系。另外,传统的“上传图片直接返回文字”接口和任务 JSON 接口不是一回事,不能假设换个域名就能跑通。
小流量对照测试要记什么
选型的最后一步不是读文档,是在自有或获授权的环境里跑一轮对照。最小可用做法:
- 从真实业务里抽一批请求样本,覆盖清单上出现频率最高的 2~3 种类型;
- 写一套统一的测试脚本,只替换服务端点与鉴权参数,保证输入相同;
- 对 2~3 家候选同时灰度,每类型跑到足以看出差别的样本量;
- 记录:目标站点接受率、P50/P95、错误码分布、失败是否扣费、同期实际扣费流水;
- 记录测试的时间窗口。防护策略会调整,两周前的结论不一定还成立。
QA 场景可以先用候选服务的官方测试额度或测试密钥验证接入链路,但要清楚测试密钥通常只验证“调用通不通”,不代表真实站点的接受率,最终仍需一次真实联调。
三个常见误判
- 把所有失败都归给识别服务。凭证被拒还可能来自代理质量、浏览器指纹、请求头顺序、提交时序或业务侧风控。排障时先确认“结果返回、站点接受、业务完成”哪一层断掉。
- 把目录支持当成场景可用。候选服务支持某类型,不等于在你那个具体站点的具体配置下都能过。
- 混淆短信验证码接收与 CAPTCHA 识别。二者是完全不同的服务,不要放在同一张比较表里。
NexCaptcha 在这套评估里对应哪些项
如果你已经按上面的清单整理好了类型和指标口径,需要找候选做对照,以下是 NexCaptcha 公开产品说明里与这些评估项对应的部分(2026-09-23 核对官网首页,属站方口径,不是我们的独立压测结论):
- 类型覆盖:以统一 REST 接口处理 reCAPTCHA v2/v3/Enterprise、hCaptcha、Cloudflare Turnstile 与 Challenge、GeeTest v3/v4、FunCaptcha/Arkose、DataDome、AWS WAF,以及图形、滑块、点选、旋转、语音等,首页按 33 种类型分别列价。具体站点、具体会话是否可用,仍要用第三步的口径自测。
- 接入形态:
createTask/getTaskResult/getBalance的任务模式,支持轮询与 webhook,API 域名api.nexcaptcha.net,密钥放在请求体的clientKey字段。 - 计费口径:按千次成功识别计费,失败退款,按量阶梯优惠,并提供测试额度——正好对应第五步要核实的三件事。
- 迁移:官网声明对 2Captcha、Anti-Captcha、CapSolver、CapMonster 的部分任务格式兼容;按第六步逐任务核对字段与错误码后,再做小流量验证。
- 性能数据:首页展示 P50/P95、接受率、节点与吞吐数字。引用时请连同统计窗口和页面日期一起标注,并以你自己的对照测试为准。
类型清单、分档价格和工程师联系入口都在NexCaptcha 官网首页,可以直接拿去填你的评估表。