Comparisons

ScrapingBee 与 CaptchaAI 自建抓取对比:怎么选

判断标准只有两条:账单是随页数涨还是随并发涨,目标站点弹的是哪一类验证码。前者决定成本曲线,后者决定可行性。

ScrapingBee 收 URL、返回渲染好的 HTML,代理和渲染都在它那一侧;CaptchaAI 只把验证码识别成 token 交回你的代码。量小、页面杂、不想养基础设施,用前者;要覆盖 GeeTest(极验)这类验证码,或者按次计费的账单开始失控,自己写爬虫再接 CaptchaAI 更划算。


分工:一个交付 HTML,一个交付 token

维度 ScrapingBee 自建 + CaptchaAI
你拿到什么 渲染好的 HTML 可直接提交的 token
你维护什么 调用参数 浏览器、代理、调度
计费口径 按调用扣额度 按线程包月,次数不限
可观测性 只知道成败 耗时与成功率进自己的监控

验证码覆盖:极验是分水岭

类型 ScrapingBee 自建 + CaptchaAI
reCAPTCHA v2 / v3
Cloudflare Turnstile
GeeTest v3(极验滑块)
BLS CAPTCHA
图片 / OCR、九宫格 有限

国内站点多用极验(GeeTest)、网易易盾、腾讯防水墙,reCAPTCHA 和 Turnstile 更多出现在出海业务里。CaptchaAI 支持 GeeTest v3,易盾与防水墙不在支持范围内,GeeTest v4 的官方口径是即将支持;CaptchaFox、Friendly Captcha、Lemin 目前都是测试版。reCAPTCHA 的脚本挂在 Google 域名下,境内加载不稳定,排查时先分清是页面没出来还是识别超时。


成本:按额度扣,还是按线程包月

以下数字来自公开定价页与内部观测样本,仅供参考,请在自有环境中实测。

ScrapingBee 每月额度 价格 折合单次请求
1,000 $49 $0.049
10,000 $99 $0.010
30,000 $249 $0.008

额度不等于页数:开启 JavaScript 渲染一次扣 5 个额度,更重的模式一次扣 10–25 个。CaptchaAI 是另一套口径,按并发线程包月:BASIC $15/月(5 线程)、STANDARD $30/月(15 线程)、ADVANCE $90/月(50 线程),套餐内识别次数不限。

每月 10,000 页、约 30% 会弹验证码(3,000 次识别): ScrapingBee 大致 $99–249;自建这侧 BASIC($15/月)就够,加代理约 $50、VPS 约 $20–50,合计 $85–115。量再翻十倍,按次计费线性上涨,线程包月多半只是升一档。


ScrapingBee:一次调用换一份 HTML

import requests

resp = requests.get(
    "https://app.scrapingbee.com/api/v1/",
    params={
        "api_key": "SCRAPINGBEE_KEY",
        "url": "https://example.com/data",
        "render_js": "true",
    },
)
html = resp.text
# Parse HTML here

渲染和代理都省了,代价是过程不透明:哪一步触发了验证码、等了多久,日志里看不到。


自建 + CaptchaAI:token 始终在你手里

import requests
from selenium import webdriver
from selenium.webdriver.common.by import By

# You control the browser
driver = webdriver.Chrome()
driver.get("https://example.com/data")

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

# Solve with CaptchaAI
resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": sitekey,
    "pageurl": driver.current_url,
    "json": 1,
})
# ... poll for result, inject token ...

提交后每 5 秒轮询一次 res.php,拿到 token 写回表单再提交。换来的是识别耗时和成功率都进自己的监控。


混合写法:难的那部分留给自己

def smart_scrape(url, scrapingbee_key, captchaai_key):
    """Use ScrapingBee for simple pages, CaptchaAI for complex ones."""

    # Try ScrapingBee first (simpler)
    resp = requests.get(
        "https://app.scrapingbee.com/api/v1/",
        params={"api_key": scrapingbee_key, "url": url},
    )

    if "captcha" not in resp.text.lower():
        return resp.text  # No CAPTCHA, use ScrapingBee result

    # CAPTCHA detected, use CaptchaAI for full control
    return solve_with_captchaai(url, captchaai_key)

新站点先交给 ScrapingBee,命中验证码特征再切自建链路,跑两周就知道哪些站点值得投入。采集范围要限定在你有权访问的数据上——robots 协议、网络安全法与 PIPL 是前提。


常见问题

目标站点都是极验滑块,该选哪条路?

自建 + CaptchaAI。通用抓取 API 对极验(GeeTest)滑块的覆盖有限。CaptchaAI 支持 GeeTest v3,可以直接在你的流程里调用,v4 还没开放。

CaptchaAI 是按识别次数计费的吗?

不是。计费单位是并发线程:BASIC $15/月 5 线程,STANDARD $30/月 15 线程,套餐内次数不限,账单只取决于并发数。

每月只有几百页弹验证码,值得自己搭一套吗?

这个量级上人力比账单贵,先用现成的抓取 API。等验证码页面占比稳定超过两成,再把这一段拆出来自建。


延伸阅读:自己动手搭一套抓取框架,以及自建还是买现成:CaptchaAI 与自托管对比


验证码交给 API,其余留在你自己的代码里——从 CaptchaAI 开始.

该文章已禁用评论。