旋转对齐(把图转正,返回角度)
旋转对齐(把图转正,返回角度) 是 不限单一厂商(题型能力)——百度系登录页最典型,另有若干中文门户与海外站点自研 的一张图进、一个角度出:把被随机转过的图转正,返回需要旋转的度数。一张(常被裁成圆形的)照片被随机转了个角度,下方一条滑轨或一对旋转按钮;用户拖到「看起来是正的」为止。
接口规格
| 项目 | 值 |
|---|---|
| type | rotate |
| 必填参数 | body |
| 可选参数 | 无 |
| 返回 | 一个数字(solution.angle) |
| 怎么用这个解 | 需要顺时针旋转的角度(整数,正数为顺时针) |
| 价格 | $1.53 / 1K 次 —— 按成功计费,没解出来退款 |
参数去页面哪里取
下面全部是可以直接照做的定位方法 —— DOM 属性名、JS 全局变量名、script 上的 query 参数。
旋转题几乎都是单个 `<img>` 或 `<canvas>`,不像滑块那样有两张图。
<img>实现直接读img.src(百度那类的图由passport.baidu.com下发,Host与Referer要跟着带,否则取回来是空图)。<canvas>实现用.toDataURL('image/png')。- 拖动件是滑柄,百度那类的 class 以
passMod_slide-btn一族命名;先量清「滑轨满程对应多少度」(多数实现满程 = 360°),再按比例把度数换算成位移。
一行拿图,同时把「是不是被 CSS 裁圆了」「有没有已经挂上 transform」一起查出来:
[...document.querySelectorAll('img,canvas')].map(e=>({cls:e.className,natural:[e.naturalWidth||e.width,e.naturalHeight||e.height],radius:getComputedStyle(e).borderRadius,transform:getComputedStyle(e).transform,data:e.tagName==='CANVAS'?e.toDataURL():e.src}))提交前去掉 data:image/png;base64, 前缀和换行,放 body。
调用示例
一个端点解全部验证码类型 —— 换一种验证码只改 type 这一个字段。
curl -X POST https://api.everyinfra.com/api/v1/captcha \ -H "Authorization: Bearer omg_你的KEY" \ -H "Content-Type: application/json" \ -d '{"type":"rotate","body":"<body>"}'
{ "solution": { "angle": "…" }, "billing": { "charged": true, "credits": 110 }}
怎么确认目标站用的就是它
模型直接回归「这张图相对正向被转了多少度」,不做内容识别、不判断图里是什么。返回一个整数角度,客户再把这个角度换算成滑轨位移或点击次数。
容易搞混的
Arkose / FunCaptcha 里「把动物转正」的那种游戏 —— 那是端到端过盾,要 sitekey 和页面 URL、交付可提交的 token;这条只给一张图回一个角度。
常见部署场景
- 百度账号登录 / 找回密码、百度指数等百度系入口
- 部分中文门户与网盘的自研旋转题
- 少量东南亚、东欧站点的自建验证码
已知的坑
单位是度不是弧度,范围 0–360,正数代表顺时针。0° 与 360° 等价。
返回的是「还需要转多少」,不是「当前被转了多少」 —— 两者互为补角,方向理解反了会稳定偏成 360−θ。接入时拿一张肉眼能判正反的图对一次即可确认。
很多站不是连续旋转,而是「每点一次转固定角度」:这时要先数清一圈几步(例如 8 步 = 每步 45°),把返回的度数除以步长再四舍五入成点击次数。把度数直接当像素或当次数用必错。
别提交被 CSS 裁圆后的截图 —— border-radius 只是显示层效果,截图会切掉四角并在边缘留抗锯齿灰边,精度明显下降。取 src 指向的原图。
页面可能已经给 <img> 挂了 transform: rotate(...);截渲染结果等于把当前角度也叠了进去,读原图才是干净输入。
只处理单张图,契约是一个角度数。有的题是给一排图让你挑「哪张是正的」,那是另一种玩法,不是这条;多图请拆成多次调用。
本能力只处理单张图,契约是一个角度数 —— 多图请拆成多次调用
正数代表顺时针
常见问题
旋转对齐(把图转正,返回角度) 要传哪些参数?
必填 body,没有可选参数。请求里 type 传 rotate。
解出来的东西怎么用?
返回一个数字,取 solution.angle。需要顺时针旋转的角度(整数,正数为顺时针)
passport.baidu.com 要去页面的哪里找?
重点找 passport.baidu.com、passMod_slide-btn、img.src。本页「参数去页面哪里取」一节写了全部位置与取法,含可直接粘进控制台的一行命令。
怎么确认目标站用的就是 旋转对齐(把图转正,返回角度)?
Arkose / FunCaptcha 里「把动物转正」的那种游戏 —— 那是端到端过盾,要 sitekey 和页面 URL、交付可提交的 token;这条只给一张图回一个角度。
有什么容易踩的坑?
单位是度不是弧度,范围 0–360,正数代表顺时针。0° 与 360° 等价。
多少钱一次,失败扣不扣?
$1.53 / 1K 次。按成功计费 —— 没解出来一律退款,所以失败不花钱。账单按次记,标价按每千次是为了让量级读得出来。