CaptchaAI 和 CapSolver 都是按 API 调用的验证码识别服务,但计费逻辑完全不同:CaptchaAI 按线程包月、每个线程识别次数不限,CapSolver 按识别次数计费、量越大账单涨得越快。想直接看结论就往下翻,完整对比在功能覆盖、定价、识别速度、API 设计四个维度展开。
该选 CaptchaAI 还是 CapSolver?
选 CaptchaAI 的场景
- 你需要识别 BLS 或网格图片验证码
- 你想在常见类型上拿到更低的单价
- 你更喜欢简单的 REST API,不想拼 JSON 请求体
- 识别速度对你的流程很关键
- 你在做轻量集成,不想依赖外部 SDK
选 CapSolver 的场景
- 你需要识别 AWS WAF 或 DataDome 验证码
- 团队更习惯基于 JSON 的 API 和类型化任务对象
- 你需要官方 Go SDK
- 你已经在用 CapSolver,迁移成本划不来
功能与类型覆盖对比
| 功能 | CaptchaAI | CapSolver |
|---|---|---|
| reCAPTCHA v2 | ✅ | ✅ |
| reCAPTCHA v3 | ✅ | ✅ |
| reCAPTCHA Enterprise | ✅ | ✅ |
| Cloudflare Turnstile | ✅ | ✅ |
| Cloudflare Challenge | ✅ | ✅ |
| GeeTest v3 | ✅ | ✅ |
| GeeTest v4 | ❌(即将支持) | ✅ |
| 图片/OCR 验证码 | ✅ | ✅ |
| BLS CAPTCHA | ✅ | ❌ |
| 计费模式 | 线程制(无限次识别) | 按次计费 |
| 免费试用 | ✅ | ✅ |
| API 风格 | REST(GET/POST) | JSON POST |
| 回调支持 | ✅ | ✅ |
以下数字基于公开资料与内部观测样本,仅供参考。实际结果会因运行环境、任务量和时间而不同,请在自有环境中测量。
两家都覆盖主流验证码类型,差异集中在小众类型:
只有 CaptchaAI 支持:
- BLS CAPTCHA——签证预约类网站常用的多图验证码,最多接受 9 张带说明的图片,返回正确的图片索引。
- 网格图片验证码——比标准 reCAPTCHA 九宫格更复杂的自定义网格选择挑战。
只有 CapSolver 支持:
- AWS WAF 验证码——CapSolver 支持 Amazon WAF 的验证挑战。
- DataDome——CapSolver 能处理 DataDome 的间隙式验证码。
按你实际会遇到的验证码类型来选,多数抓取和自动化场景里 CaptchaAI 的覆盖已经够用。
识别速度对比
| 验证码类型 | CaptchaAI | CapSolver(参考) |
|---|---|---|
| reCAPTCHA v2 | <60 秒 | 15–30 秒 |
| reCAPTCHA v3 | <4 秒 | 10–20 秒 |
| Cloudflare Turnstile | <10 秒 | 10–20 秒 |
| 图片/OCR | <0.5 秒 | 5–10 秒 |
CaptchaAI 的数字是官方 SLA 上限,多数情况下实际更快。图片验证码上两家表现接近,瓶颈在 OCR 处理本身。
定价对比:线程制 vs 按次计费
下表是两家在常见验证码类型上的每 1000 次起步单价:
| 验证码类型 | CaptchaAI(每 1000 次起) | CapSolver(每 1000 次起) |
|---|---|---|
| 图片/OCR | $0.50 | $0.80 |
| reCAPTCHA v2 | $1.00 | $1.50 |
| reCAPTCHA v3 | $1.20 | $1.80 |
| Cloudflare Turnstile | $1.00 | $1.50 |
| Cloudflare Challenge | $2.00 | $2.50 |
reCAPTCHA 和 Turnstile 这类高频类型上,线程制优势最明显——量越大,优势越大。
大批量场景下的费用测算
假设你在东南亚做电商价格监控,团队分布在新加坡和吉隆坡,每月要处理 100 万次 reCAPTCHA v2——中大型抓取项目的常见规模。按 CapSolver 约 $1.50/1000 次的公开单价,对比 CaptchaAI 按并发峰值配置的套餐:
| 每月 reCAPTCHA v2 量 | CapSolver 费用(按次计费) | CaptchaAI 套餐 | CaptchaAI 费用 | 节省幅度 |
|---|---|---|---|---|
| 10,000 次 | 约 $15 | BASIC(5 线程) | $15 | 打平 |
| 100,000 次 | 约 $150 | BASIC(5 线程) | $15 | 约 90% |
| 1,000,000 次 | 约 $1,500 | ADVANCE(50 线程) | $90 | 约 94% |
| 10,000,000 次 | 约 $15,000 | ENTERPRISE(200 线程) | $300 | 约 98% |
超过每月 1 万次识别之后,线程制在结构上更便宜,识别量越大差距越大。以上均为起步单价,实时套餐价格请以官网为准。
API 设计:REST 查询参数 vs JSON POST
CaptchaAI —— REST 查询参数
import requests
# Submit task
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com"
})
task_id = resp.text.split("|")[1]
CapSolver —— JSON POST
import requests
# Submit task
resp = requests.post("https://api.capsolver.com/createTask", json={
"clientKey": "YOUR_KEY",
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://example.com",
"websiteKey": "SITE_KEY"
}
})
task_id = resp.json()["taskId"]
CaptchaAI 用 GET 参数,你直接用浏览器或者 curl 命令就能测试。CapSolver 走 JSON,需要自己拼请求体,好处是类型定义更结构化。
完整识别流程示例
CaptchaAI(Python)
import requests
import time
API_KEY = "YOUR_API_KEY"
def solve_recaptcha(site_key, page_url):
# Submit
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": site_key,
"pageurl": page_url
})
if not resp.text.startswith("OK|"):
raise Exception(f"Submit failed: {resp.text}")
task_id = resp.text.split("|")[1]
# Poll
for _ in range(60):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY,
"action": "get",
"id": task_id
})
if result.text == "CAPCHA_NOT_READY":
continue
if result.text.startswith("OK|"):
return result.text.split("|")[1]
raise Exception(f"Solve failed: {result.text}")
raise TimeoutError("Solve timed out")
token = solve_recaptcha("6Le-wvkS...", "https://example.com")
CapSolver(Python)
import requests
import time
API_KEY = "YOUR_KEY"
def solve_recaptcha(site_key, page_url):
resp = requests.post("https://api.capsolver.com/createTask", json={
"clientKey": API_KEY,
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": page_url,
"websiteKey": site_key
}
})
task_id = resp.json()["taskId"]
for _ in range(60):
time.sleep(5)
result = requests.post("https://api.capsolver.com/getTaskResult", json={
"clientKey": API_KEY,
"taskId": task_id
})
data = result.json()
if data["status"] == "processing":
continue
if data["status"] == "ready":
return data["solution"]["gRecaptchaResponse"]
raise Exception(f"Failed: {data}")
raise TimeoutError("Solve timed out")
token = solve_recaptcha("6Le-wvkS...", "https://example.com")
两边都是“提交任务 → 轮询结果”的模式,代码行数和复杂度差不多。
开发者体验对比
| 维度 | CaptchaAI | CapSolver |
|---|---|---|
| 文档 | 清晰,带代码示例 | 结构化,附 SDK |
| 错误信息 | 纯文本错误码 | JSON 错误对象 |
| 控制台 | 余额、用量统计 | 余额、用量统计、日志 |
| 支持渠道 | 邮件 + 文档 | 邮件 + Discord |
| SDK | Python、Node.js | Python、Node.js、Go |
CapSolver 官方 SDK 包更多一些,CaptchaAI 的 API 简单到多数场景不需要 SDK。
从 CapSolver 迁移到 CaptchaAI
- 在 CaptchaAI 官网 注册账号
- 把
https://api.capsolver.com/createTask换成https://ocr.captchaai.com/in.php - 把 JSON 任务对象改成查询参数:
-
"type": "ReCaptchaV2TaskProxyLess"→method=userrecaptcha-"websiteKey"→googlekey-"websiteURL"→pageurl - 响应解析从 JSON 改成管道分隔格式
- 把
getTaskResult调用换成res.php?action=get&id=TASK_ID
常见问题
GeeTest v4 现在支持吗?
目前还不支持,CaptchaAI 已支持 GeeTest v3,v4 属于即将支持。如果目标站点已经升级到 v4,现阶段 CapSolver 覆盖更全。
切换到 CaptchaAI 需要停机吗?
不需要。先把 CaptchaAI 配置成并行识别器,验证跟你现有集成是否兼容,确认无误后再把流量切过去。两家都是“提交 → 轮询”模式,不用改架构。
CaptchaAI 和 CapSolver 哪个识别准确率更高?
两家官方都不公布具体的准确率数字,只强调“支持类型上有高成功率”。多数场景下这点差异感知不到,真正影响成本的是计费模式,而不是准确率。
CaptchaAI 的线程套餐怎么选,会不会太小?
线程数决定并发上限,不是识别次数上限——同一线程能连续处理不限次数的识别请求。按峰值并发估算套餐,而不是按月识别总量;多数中小规模抓取用 BASIC 或 STANDARD 就够,并发涨了再升级线程数。