Comparisons

浏览器扩展与 API:哪种验证码求解器方法更好?

装个浏览器插件就能自动识别验证码,为什么还要写代码接 API?插件适合“少量、手动、临时”场景,API 适合“批量、服务器端、长期跑”场景——背后是同一套 CaptchaAI 识别能力,区别只在谁触发识别、能不能脱离浏览器、能扩多大规模。下面先给速查表,再拆解原理、场景、性能与稳定性,最后附混合方案代码。


一张表看懂核心差异

特征 浏览器扩展 API 求解器
安装方式 安装扩展,填入 API Key 通过 HTTP 调用集成到代码里
是否需要浏览器 需要 不需要(除非要把 token 写回页面)
并发扩展性 低——一个浏览器实例只能处理一个任务 高——可无限并行发起请求
识别速度 快(自动检测 + 自动提交) 视验证码类型而定(约 5–30 秒)
可控性 有限 完全可编程控制
无头(headless)支持 有限 完整支持
服务器端可用 不可用 可用
计费方式 线程制计费,与 API 共用同一套额度 线程制计费,与扩展共用同一套额度
可用语言 仅浏览器端(JavaScript) 任意语言

两种方案分别怎么工作

浏览器扩展

浏览器扩展监听页面加载,识别已知验证码控件(reCAPTCHA、Turnstile、图片验证码等),检测到后自动提取参数、提交识别、把 token 写回页面。

优点 缺点
零代码,装好就用 必须有浏览器在运行(可见或无头)
自动检测并把 token 写回页面 一个实例同一时间只处理一个任务,规模化要开很多实例,成本高
更接近真实用户操作 可能被反机器人系统识别出扩展特征
能应对 JavaScript 重度页面 没浏览器的服务器上用不了;错误处理简陋;扩展一更新流程可能直接失效

API 求解器

直接向识别接口发 HTTP 请求:提交参数(sitekey、pageurl、图片数据等),轮询结果,把 token 用到业务逻辑里——全程不需要浏览器。

优点 缺点
完全可编程控制,支持任意语言(Python、Node.js、PHP、Go 等) 需要自己写代码集成
可扩展到数千个并发任务 token 回写页面要自己处理
服务器、容器、Serverless 都能跑 sitekey 等参数得自己提取
错误处理、重试、监控自己定义;不存在“扩展被识别”这类风险

该选扩展还是 API:看你的场景

适合用浏览器扩展

  • 偶尔手动浏览遇到验证码——方便,不用写代码
  • 快速验证想法——接 API 之前先跑通流程
  • 单浏览器、低频任务——填表单、少量注册账号
  • 不写代码的用户——不需要编程基础

适合用 API

  • 大规模数据采集——并行识别,无浏览器开销
  • 服务器端自动化——没有浏览器可用
  • CI/CD 测试流程——运行在无头环境
  • 微服务架构——任何服务都能发 HTTP 请求
  • 多验证码类型处理——自己写逻辑判断类型、路由
  • 自定义重试/错误处理——故障恢复完全由你控制
  • 控制成本——统计用量、能缓存就缓存

性能与稳定性:规模上去之后谁更扛得住

并发扩展性:从 1 个到 1000+

指标 浏览器扩展 API
1 个验证码 速度相近 速度相近
10 个并发 需要 10 个浏览器实例 10 个并行 HTTP 请求
100 个并发 基本不现实 常规工作量
1,000+ 并发 不可行 队列 + worker 即可
单实例内存占用 200–500 MB(Chrome) 约 10 MB(HTTP 客户端)
单实例 CPU 占用 高(要渲染浏览器) 低(只发 HTTP 请求)

出问题了谁更好排查

维度 浏览器扩展 API
验证码检测 自动(可能漏掉自定义验证码) 手动,检测逻辑你自己写
错误处理 扩展层面,能力有限 你的代码全权处理
升级兼容 扩展更新可能破坏现有流程 走版本化,向后兼容
浏览器崩溃 会话直接丢失 没有浏览器就没有崩溃风险
反机器人识别 可能暴露扩展特征 没有扩展特征可被识别

国内团队的真实选择:GeeTest(极验)+ reCAPTCHA 混合场景

做跨境电商自动化的国内团队,常同时碰到两类验证码:国内表单多是 GeeTest(极验),海外落地页更常见 reCAPTCHA。reCAPTCHA 脚本托管在 Google 服务器上,境内访问有时不稳定,插件触发会变慢。常见做法:国内低频操作用扩展处理,海外批量抓取全切到 API,直接提交 sitekey、pageurl,不依赖脚本能否加载。CaptchaAI 目前支持 GeeTest v3,v4 尚未开放。


混合方案:浏览器负责导航,API 负责识别

复杂网站可以两者结合:用浏览器做页面导航,用 API 做验证码识别。国内环境下,pip install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium requests 走镜像会快不少。

from selenium import webdriver
import requests
import time

driver = webdriver.Chrome()
driver.get("https://staging.example.com/qa-login")

# Detect CAPTCHA
sitekey = driver.find_element("css selector", "[data-sitekey]").get_attribute("data-sitekey")

# Solve via API (not extension)
submit = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": sitekey,
    "pageurl": driver.current_url,
    "json": 1
}).json()

task_id = submit["request"]
time.sleep(15)

for _ in range(24):
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": "YOUR_API_KEY", "action": "get", "id": task_id, "json": 1
    }).json()
    if result.get("status") == 1:
        token = result["request"]
        # Inject token via JavaScript
        driver.execute_script(
            f'document.getElementById("g-recaptcha-response").value = "{token}";'
        )
        driver.find_element("css selector", "form").submit()
        break
    time.sleep(5)

这样既保留浏览器渲染能力,应付 JavaScript 重度站点,识别环节又完全走 API,可控性和并发能力更强。


常见问题

国内环境访问 reCAPTCHA 插件会不会不稳定?

会。reCAPTCHA 脚本托管在 Google 服务器上,境内访问有时不够稳定,插件要等脚本加载完才能触发识别,加载慢就可能超时。目标站点面向海外用户时,更稳妥的做法是用 API 直接提交 sitekey 和 pageurl,不依赖页面脚本能否顺利加载。

识别 GeeTest 验证码该用扩展还是 API?

两种都可以,API 更适合批量场景。CaptchaAI 支持 GeeTest v3,扩展和 API 走同一套识别流程,区别只在要不要为每个任务开浏览器实例。偶尔手动测试用扩展更快;接自动化或跑量,直接用 API 更省资源。

扩展和 API 的计费方式一样吗?

一样。CaptchaAI 按线程计费,同一线程配额内,请求来自扩展还是 API 都不额外收费,费用只取决于套餐,比如 BASIC($15/月,5 线程)。

无头 Chrome(headless)环境下插件还能正常工作吗?

技术上能装,但稳定性有限。Headless Chrome 能加载扩展,但部分网站会识别 headless 特征并改变验证码策略,导致插件识别变得不稳定。自动化流程本就跑在无头环境(比如 CI/CD)的话,直接用 API 提交参数更可靠。

GeeTest v4 现在能用 CaptchaAI 识别吗?

暂不支持,只支持 GeeTest v3。v4 即将支持,正式开放前不要在生产环境假设可用——扩展和 API 都一样。


获取 CaptchaAI API Key

CaptchaAI 官网 注册账号,几分钟拿到 API Key,接入自己的脚本。


相关指南

该文章已禁用评论。