Akamai sec-cpt 挑战令牌
Akamai sec-cpt 挑战令牌 是 Akamai 的反爬平台挑战(带强制等待)。一个中间页,通常写着请稍候之类的提示,**必须等满一段时间**才能继续 —— 那个等待是挑战本身要求的。
接口规格
| 项目 | 值 |
|---|---|
| type | akamai_sec_cpt |
| 必填参数 | sec_cptsec_json |
| 可选参数 | 无 |
| 返回 | 一个 token 字符串(solution.token) |
| 怎么用这个解 | 回填 sec-cpt 校验接口 |
| 价格 | $3.06 / 1K 次 —— 按成功计费,没解出来退款 |
| 厂商文档 | Akamai 官方文档 |
参数去页面哪里取
下面全部是可以直接照做的定位方法 —— DOM 属性名、JS 全局变量名、script 上的 query 参数。
必填 sec_cpt + sec_json。
这两个值来自被拦时的响应:sec-cpt 是那个挑战 cookie,sec_json 是挑战页给出的 JSON 载荷。
document.cookie.split('; ').find(c => c.startsWith('sec_cpt'))⚠ JSON 载荷那一半在挑战响应体里,不在 DOM 上 —— 要从被拦那次请求的响应里取。
⚠ 这个挑战自带强制等待时长:慢不是我们的问题,是 Akamai 要求等满。我们会在超时预算内等完再返回,所以这条的响应时间天然比别的类型长。
调用示例
一个端点解全部验证码类型 —— 换一种验证码只改 type 这一个字段。
curl -X POST https://api.everyinfra.com/api/v1/captcha \ -H "Authorization: Bearer omg_你的KEY" \ -H "Content-Type: application/json" \ -d '{"type":"akamai_sec_cpt","sec_cpt":"<sec_cpt>","sec_json":"<sec_json>"}'
{ "solution": { "token": "…" }, "billing": { "charged": true, "credits": 220 }}
怎么确认目标站用的就是它
Akamai 下发一个 sec-cpt 挑战,其中带一个强制等待时长;等满并回填校验值之后才放行。
容易搞混的
与 Akamai Bot Manager(Web,`akamai_web`) 和 移动端 SDK(`akamai_bmp`) 同属 Akamai,但三者要的输入完全不同:这条要 sec_cpt + sec_json,Web 那条只要 URL,移动端那条要包名。
常见部署场景
- Akamai 防护下的站点在特定风险判定时触发
- 与 Bot Manager 的 Web 侧(`akamai_web`)同属一个体系的不同挑战形态
已知的坑
强制等待是挑战本身的要求,不是我们慢。规划超时预算时要给足。
sec_json 在响应体里而不是 DOM 上,浏览器里直接找找不到 —— 要抓那次被拦的响应。
与 akamai_web 是同体系的不同形态:那条只要页面 URL、交付 Cookie;这条要你先拿到挑战的两个值。
这个挑战自带强制等待时长 —— 是 Akamai 的要求,不是我们慢。我们会在超时预算内等满再返回
常见问题
Akamai sec-cpt 挑战令牌 要传哪些参数?
必填 sec_cpt、sec_json,没有可选参数。请求里 type 传 akamai_sec_cpt。
解出来的东西怎么用?
返回一个 token 字符串,取 solution.token。回填 sec-cpt 校验接口
sec-cpt 要去页面的哪里找?
重点找 sec-cpt。本页「参数去页面哪里取」一节写了全部位置与取法,含可直接粘进控制台的一行命令。
怎么确认目标站用的就是 Akamai sec-cpt 挑战令牌?
与 Akamai Bot Manager(Web,`akamai_web`) 和 移动端 SDK(`akamai_bmp`) 同属 Akamai,但三者要的输入完全不同:这条要 sec_cpt + sec_json,Web 那条只要 URL,移动端那条要包名。
有什么容易踩的坑?
强制等待是挑战本身的要求,不是我们慢。规划超时预算时要给足。
多少钱一次,失败扣不扣?
$3.06 / 1K 次。按成功计费 —— 没解出来一律退款,所以失败不花钱。账单按次记,标价按每千次是为了让量级读得出来。