KeyCAPTCHA
KeyCAPTCHA 是 KeyCAPTCHA 的拼图(把碎片拖回原位)。一张被打散的图,把几块碎片拖回正确位置拼好。是比较老派的一种交互验证码。
接口规格
| 项目 | 值 |
|---|---|
| type | keycaptcha |
| 必填参数 | website_urluser_idsession_idweb_server_signweb_server_sign2 |
| 可选参数 | 无 |
| 返回 | 一个 token 字符串(solution.token) |
| 怎么用这个解 | 填回目标站表单 |
| 价格 | $4.58 / 1K 次 —— 按成功计费,没解出来退款 |
| 厂商文档 | KeyCAPTCHA 官方文档 |
参数去页面哪里取
下面全部是可以直接照做的定位方法 —— DOM 属性名、JS 全局变量名、script 上的 query 参数。
必填 website_url + 一组 s_s_c_* 参数。
⚠ 这家的参数名很有特点,全部以 `s_s_c_` 开头,直接搜这个前缀
[...document.documentElement.innerHTML.matchAll(/s_s_c_[a-z0-9_]+\s*[:=]\s*['"]?([^'"&,;\s]+)/gi)].map(m => m[0])常见四个:s_s_c_user_id、s_s_c_session_id、s_s_c_web_server_sign、s_s_c_web_server_sign2。它们通常以 JS 变量或表单隐藏字段出现。
⚠ **s_s_c_session_id 与 web_server_sign* 是每次加载现生成的**,不能缓存复用。
调用示例
一个端点解全部验证码类型 —— 换一种验证码只改 type 这一个字段。
curl -X POST https://api.everyinfra.com/api/v1/captcha \ -H "Authorization: Bearer omg_你的KEY" \ -H "Content-Type: application/json" \ -d '{"type":"keycaptcha","website_url":"<website_url>","user_id":"<user_id>","session_id":"<session_id>","web_server_sign":"<web_server_sign>","web_server_sign2":"<web_server_sign2>"}'
{ "solution": { "token": "…" }, "billing": { "charged": true, "credits": 330 }}
怎么确认目标站用的就是它
常见部署场景
- 老式 CMS 与论坛插件(WordPress、Joomla 等有现成集成)
- 2010 年代建站留下的存量部署
- 一些俄语区与东欧站点
已知的坑
**s_s_c_* 那几个签名参数每次页面加载都会变**,取一次用一次。
`web_server_sign` 与 `web_server_sign2` 是两个不同的值,容易只取到第一个。
存量部署为主,很多站点跑的是多年前的插件版本、页面结构差异大 —— 按 s_s_c_ 前缀搜比按 DOM 结构找可靠。
四个 s_s_c_* 值都必须从当次页面取 —— 它们是一次性的
解出来的值以 |1 结尾,那是值的一部分,不要截断
常见问题
KeyCAPTCHA 要传哪些参数?
必填 website_url、user_id、session_id、web_server_sign、web_server_sign2,没有可选参数。请求里 type 传 keycaptcha。
解出来的东西怎么用?
返回一个 token 字符串,取 solution.token。填回目标站表单
s_s_c_web_server_sign2 要去页面的哪里找?
重点找 s_s_c_web_server_sign2、s_s_c_web_server_sign、s_s_c_session_id。本页「参数去页面哪里取」一节写了全部位置与取法,含可直接粘进控制台的一行命令。
怎么确认目标站用的就是 KeyCAPTCHA?
与 Capy / Lemin 这类拼图验证码形态相似,但参数名完全不同 —— 看到 s_s_c_ 前缀就是 KeyCAPTCHA。
有什么容易踩的坑?
**s_s_c_* 那几个签名参数每次页面加载都会变**,取一次用一次。
多少钱一次,失败扣不扣?
$4.58 / 1K 次。按成功计费 —— 没解出来一律退款,所以失败不花钱。账单按次记,标价按每千次是为了让量级读得出来。