验证码识别 API
EverySolve 是一个验证码识别接口:53 种验证码类型共用同一个端点 POST /api/v1/captcha, 换一种验证码只改请求里 type 这一个字段, 解析代码一行不用动。按成功计费 —— 没解出来一律退款,所以失败不花钱。
curl -X POST https://api.everyinfra.com/api/v1/captcha \ -H "Authorization: Bearer omg_你的KEY" \ -H "Content-Type: application/json" \ -d '{"type":"turnstile","website_url":"https://example.com","website_key":"0x4AAA..."}'
怎么判断目标站用的是哪一种
按信号强度从强到弱查,通常前两步就能定下来。
- ① 看页面加载了哪些第三方 script —— 域名几乎是一对一的:
recaptcha/api.js、challenges.cloudflare.com、hcaptcha.com。 带品牌的组件大多在这一步就能认出来。 - ② 看容器上的 data 属性 —— 参数通常就在那里。但注意
data-sitekey这个名字是多家组件共用的, 光靠它区分不出是哪一家,必须配合第①步的 script 域名; 也有用别的名字的,比如data-pkey。 - ③ 在控制台查全局对象 —— script 被打包混淆、域名看不出来时这一步仍然有效:
grecaptcha(再查grecaptcha.enterprise区分是不是 Enterprise)、window.gokuProps、window._pxAppId、window.smartCaptcha、window.AliyunCaptchaConfig。 - ④ 如果是整页被挡住,而不是表单里的一个组件 —— 那属于「反爬平台的整页拦截」这一类,判据在 Cookie 名与响应头 (比如
__cf_前缀)。 这一类解出来拿到的是 Cookie 而不是 token, 后续请求要带着它。 - ⑤ 如果手上只有一张图或一道题, 根本没有目标页面 —— 走「图像与题型识别」,按题目形式选 (认字 / 点选 / 框选 / 算术),这一类不需要
website_url。
有品牌的验证码组件
页面上能看到具体是哪一家的组件 —— 通常在表单里,解出来填回一个字段
反爬平台的整页拦截
不是表单里的小组件,而是整页把你挡在外面 —— 解出来拿到的是 Cookie
解出来是什么形状,怎么用
响应里 solution 的结构按类型分成8 种。同一形状的类型可以共用一段解析代码。
| 解的形状 | 拿到什么 | 怎么用 | 类型数 |
|---|---|---|---|
token | 一个 token 字符串 | 填进表单里那个隐藏字段,或按目标站的要求随请求带上 | 22 |
cookie | 一串 Cookie | 写进后续请求的 Cookie 头,之后正常访问 | 10 |
fields | 一组字段(要一起提交) | 全部字段一起提交 —— 少带一个就通不过 | 8 |
points | 一组坐标点 | 按返回的顺序在原图上依次点击 | 5 |
text | 一段文字 | 把识别出的文字填进输入框 | 3 |
boxes | 一组矩形框 | 按矩形框在原图上框选或点击框内 | 2 |
number | 一个数字 | 把算出的数字填进输入框 | 2 |
tokens | 一组 token | 同 token,但要按各自的字段名分别填 | 1 |
常见问题
怎么知道目标站用的是哪一种验证码?
按信号强度从强到弱查:先看页面加载了哪些第三方 script,域名几乎一对一(recaptcha/api.js、challenges.cloudflare.com、hcaptcha.com);再看容器上的 data 属性,参数通常就在那里,但 data-sitekey 这个名字是多家组件共用的,光靠它区分不出厂商;script 被混淆时改在控制台查全局对象(grecaptcha、window.gokuProps、window._pxAppId、window.smartCaptcha)。如果是整页被挡住而不是表单里的一个组件,那属于反爬平台的整页拦截,判据在 Cookie 名与响应头,解出来拿到的是 Cookie 而不是 token。
解不出来会扣钱吗?
不扣。按成功计费 —— 没解出来一律退款,返回空结果也退,所以失败不花钱。账单按次记,标价按每千次只是为了让量级读得出来。
从一种验证码换到另一种,代码要改多少?
端点不变(POST /api/v1/captcha),请求里只改 type 一个字段。真正要跟着改的是两处:参数因类型而异(表单类组件通常要 website_url 加一个 key,图像题型只要图本身),以及解的形状可能不同 —— 8 种形状里,同一形状的类型可以共用同一段解析代码。
能力目录里那个 available 字段是什么意思?
GET /api/v1/captcha/types 不鉴权、免费,返回全部 53 种类型的参数、解的形状和单价。其中 available 反映的是此刻这一种能不能真的解出来,而不是我们支持列表里登记了没有 —— 它会变,所以别把这份目录缓存成静态数据。程序里按它决定要不要发这次请求,比发出去再处理失败更省事。