Comparisons

CaptchaAI 与 CapSolver 对比:计费模式与类型支持

CaptchaAI 和 CapSolver 都是按 API 调用的验证码识别服务,但计费逻辑完全不同:CaptchaAI 按线程包月、每个线程识别次数不限,CapSolver 按识别次数计费、账单随识别量增长(折扣套餐只降低单价)。想直接看结论就往下翻,完整对比在功能覆盖、定价、识别速度、API 设计四个维度展开。

该选 CaptchaAI 还是 CapSolver?

选 CaptchaAI 的场景

  • 你需要识别 BLS 验证码
  • 你的识别量较大,想要每个线程无限次识别、按月固定价格
  • 你更喜欢简单的 REST API,不想拼 JSON 请求体
  • 你在做轻量集成,不想依赖外部 SDK

选 CapSolver 的场景

  • 你需要识别 AWS WAF 或 DataDome 验证码
  • 团队更习惯基于 JSON 的 API 和类型化任务对象
  • 你希望结果通过 POST 推送到回调 URL,而不是轮询
  • 你已经在用 CapSolver,迁移成本划不来

功能与类型覆盖对比

功能 CaptchaAI CapSolver
reCAPTCHA v2 ✅ ✅
reCAPTCHA v3 ✅ ✅
reCAPTCHA Enterprise ✅ ✅
Cloudflare Turnstile ✅ ✅
Cloudflare Challenge ✅ ✅
GeeTest v3 ✅ ✅
GeeTest v4 ❌ ✅
图片/OCR 验证码 ✅ ✅
BLS CAPTCHA ✅ ❌
计费模式 线程制(无限次识别) 按次计费
免费方案 ✅ 1 个免费线程,30 天,无需信用卡 ✅
API 风格 REST(GET/POST) JSON POST
结果获取方式 轮询(res.php) 轮询或 POST 到 callbackUrl

付费前先测试 CaptchaAI:领取 1 个免费线程,30 天有效,无需信用卡。CapSolver 一列依据其自家文档:任务类型列表(其中没有 BLS 任务),GeeTest v4 见 GeeTest 文档,callbackUrl 见 createTask 文档;免费方案指其产品页上的 “Get Free Trial” 入口(均于 2026 年 10 月 18 日核实)。

下文 CapSolver 相关信息均来自其官方文档(2026 年 10 月 18 日核实)。实际结果会因运行环境、任务量和时间而不同,请在自有环境中测量。

两家都覆盖主流验证码类型,差异集中在小众类型:

只有 CaptchaAI 支持:

  • BLS CAPTCHA——签证预约类网站常用的多图验证码,最多接受 9 张带说明的图片,返回正确的图片索引。CapSolver 的任务类型列表中没有 BLS。

只有 CapSolver 支持(摘自其任务类型列表):

  • GeeTest v4——见 CapSolver 的 GeeTest 文档;CaptchaAI 只支持 GeeTest v3。
  • MTCaptcha——CapSolver 列表中的 token 类任务;CaptchaAI 没有对应 MTCaptcha 的方法。
  • AWS WAF 验证码——CapSolver 支持 Amazon WAF 的验证挑战。
  • DataDome——CapSolver 能处理 DataDome 的间隙式验证码。

reCAPTCHA 式的网格图片两家都能处理:CaptchaAI 用 Grid Image 方法,CapSolver 用 reCAPTCHA v2 图片识别任务。按你实际会遇到的验证码类型来选,多数抓取和自动化场景里 CaptchaAI 的覆盖已经够用。

识别速度对比

CaptchaAI 返回 reCAPTCHA v2 token 通常不超过 120 秒。两家的识别耗时都取决于目标站点、你的代理和当时的负载,切换之前请在自己的页面上跑一轮测试,以实测耗时为准。

定价对比:线程制 vs 按次计费

CaptchaAI 按线程计费,每个线程识别次数不限,不按次、也不按类型额外收费;CapSolver 按识别次数计费,按任务类型标出每 1000 次的价格,另有折扣套餐包。

CaptchaAI CapSolver
计费对象 线程(每个线程同一时间处理一个验证码),识别次数不限 识别次数,按任务类型计每 1000 次单价;另有折扣套餐包
起步价 BASIC:$15/月,5 线程 —(见其价格页)

CapSolver 当前每 1000 次的价格见其价格页,套餐包见其文档(均于 2026 年 10 月 18 日核实)。

大批量场景下的费用测算

假设你在东南亚做电商价格监控,团队分布在新加坡和吉隆坡,每月要处理 100 万次 reCAPTCHA v2。以下是 CaptchaAI 的测算示例,前提是你的峰值并发能放进套餐的线程数:

每月 reCAPTCHA v2 量 CaptchaAI 套餐 CaptchaAI 费用 每 1000 次
100,000 次 BASIC(5 线程) $15 $0.15
1,000,000 次 ADVANCE(50 线程) $90 $0.09

要和 CapSolver 比较,把你的月识别量乘以其价格页上对应任务类型的每 1000 次价格即可。CaptchaAI 的线程数按峰值并发配置,因为每个线程同一时间只处理一个验证码。实时套餐价格请以官网为准。

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=1 时为 JSON) JSON 错误对象(errorId、errorCode)
支持渠道 工单:ticket.captchaai.com —
官方 SDK Python(captchaai 包) —

CapSolver 的错误格式出自其 createTask 文档;其 SDK 与支持渠道请查看其文档(2026 年 10 月 18 日核实)。CaptchaAI 的 API 简单到多数场景不需要 SDK。

从 CapSolver 迁移到 CaptchaAI

  1. 在 CaptchaAI 官网 注册账号
  2. 把 https://api.capsolver.com/createTask 换成 https://ocr.captchaai.com/in.php
  3. 把 JSON 任务对象改成查询参数: - "type": "ReCaptchaV2TaskProxyLess" → method=userrecaptcha - "websiteKey" → googlekey - "websiteURL" → pageurl
  4. 响应解析从 JSON 改成管道分隔格式
  5. 把 getTaskResult 调用换成 res.php?action=get&id=TASK_ID

常见问题

CaptchaAI 支持 GeeTest v4 吗?

不支持。CaptchaAI 支持 GeeTest v3,不支持 GeeTest v4。如果目标站点已经升级到 v4,CapSolver 覆盖更全。

切换到 CaptchaAI 需要停机吗?

不需要。先把 CaptchaAI 配置成并行识别器,验证跟你现有集成是否兼容,确认无误后再把流量切过去。两家都是“提交 → 轮询”模式,不用改架构。

CaptchaAI 和 CapSolver 哪个识别准确率更高?

CaptchaAI 的识别成功率为:reCAPTCHA v2 99.50%、reCAPTCHA v3 99.00%、Cloudflare Turnstile 99.90%(2026 年 10 月数据)。CapSolver 的产品页写的是 “High Accuracy & Success Rate”,没有给出具体数字(2026 年 10 月 18 日核实)。最终请在自己的目标站点上实测两家;真正影响成本的往往是计费模式。

CaptchaAI 的线程套餐怎么选,会不会太小?

线程数决定并发上限,不是识别次数上限——同一线程能连续处理不限次数的识别请求。按峰值并发估算套餐,而不是按月识别总量;规模不大时可以从 BASIC 或 STANDARD 起步,并发涨了再升级线程数。

相关指南

该文章已禁用评论。