AWS WAF 验证码识别工具:自动获取 aws-waf-token
Amazon WAF 会用图片九宫格或玩具车谜题把网站挡住,直到访客拿到 aws-waf-token Cookie 为止。CapSkip 在你自己运行的 Windows 机器上为你的脚本拿到这个 Cookie,只需一份统一月费。
- 九宫格与玩具车谜题
- 直接返回 aws-waf-token
- 统一月费套餐
当亚马逊的 Web 应用防火墙认定某位访客像是自动化程序时,它会停止提供页面,先要求对方证明自己。这道证明就是 AWS WAF 验证码:通常是一个 3x3 图片九宫格,配有“选择所有窗帘”之类的提示和一个确认按钮;有时则是一个小谜题,需要让玩具车开到城市街道的尽头。答对了,网站就会设置 aws-waf-token Cookie;在此之前,你的爬虫或机器人看到的只有这道挑战。
CapSkip 是一款装在 Windows 桌面电脑、VPS 或服务器上的 AWS WAF 验证码识别工具。你把挑战携带的参数交给它,它就返回 HTTP 客户端继续工作所需的通行凭证,无论网站显示的是整页 405 拦截页,还是在表单中嵌入 JavaScript API 小组件。任何远程打码平台都无从得知你在处理哪些受 Amazon 保护的网站。
按量计费的服务通常每千次 AWS WAF 识别收费约 $1.45,每次重试还要再收一次钱。CapSkip 无论用量多少,都是同样的统一价格,每月 $35 起;已经为旧版 in.php / res.php API、Anti-Captcha、CapSolver 或 CapMonster 编写的工具,无需修改代码,就能把 Amazon WAF 任务发给 CapSkip。
通行凭证留在你这一边。 CapSkip 在应用运行的机器上完成 AWS WAF 验证码识别,因此你爬取的网站、挑战参数和收到的 Cookie,都不会经过任何第三方打码服务。 阅读设置指南
专为 Amazon WAF 保护的网站打造
图片九宫格和玩具车一样搞定
AWS WAF 会自己决定给访客哪一种谜题。CapSkip 既能识别“选择所有……”图片九宫格,也能识别玩具车路线谜题,你的任务绝不会因为遇到没准备好的那一种而卡住。
整页验证或嵌入式小组件
有些网站会返回一个承载挑战的 405 页面;另一些则把验证码小组件放在登录或结账表单上。两种形式使用同样的请求字段即可覆盖。
补上客户端缺少的那个 Cookie
你拿到的是 aws-waf-token Cookie 的值,或者旧版 API 返回的那一对凭证。设置好它,重新发送请求,受保护的页面就会照常加载。
现有客户端照常工作
AmazonTask、AntiAwsWafTask 以及 in.php method=amazon_waf 请求都能原样识别。在应用中选择你的代码已经在对接的服务,代码保持不变。
代理支撑真正的大批量
测试时一个地址就足够了。若要持续处理大量 AWS WAF 任务,可以为每个请求附加代理,或在应用中加载代理池,让任务分散到众多 IP 上。
重试不花一分钱
通行凭证过期、页面连问两次、一夜之间运行量翻倍:这些都不会出现在你的账单上,因为套餐按机器定价,什么都不计量。
用 CapSkip 通过 AWS WAF 验证码的三种方式
from capskip import CapSkip
solver = CapSkip(host="127.0.0.1", port=8080)
# Values from the 405 page's window.gokuProps. iv and context are optional:
# leave both out and CapSkip reads them from the page itself.
result = solver.amazon_waf(
sitekey="AQIDAHjcYu/GjX+QlghicBg...", # gokuProps.key
iv="CgAHbCe2GgAAAAAD", # gokuProps.iv
context="zPT0jOl1rQlUNaldX6LUpn4D...", # gokuProps.context
url="https://example.com/products",
)
# POST this pair to the voucher endpoint beside challenge.js for the cookie.
print(result["captcha_voucher"], result["existing_token"])在 Python 中只需一次调用:传入 window.gokuProps 中的值和页面地址,即可取回网站会转换成 aws-waf-token Cookie 的那一对凭证值。
从安装到拿到第一个 aws-waf-token
-
在 Windows 上安装 CapSkip
把应用装在负责处理 AWS WAF 流量的电脑、VPS 或服务器上。本地 API 会随应用一起启动。 下载 CapSkip
-
选择套餐或开始试用
套餐按机器定价,而不是按识别次数。免费试用提供 3 天和 500 次识别,让你测试自己受 Amazon 保护的目标,无需绑卡。 比较套餐
-
发送你的第一个 AWS WAF 任务
把挑战参数提交给 CapSkip,或在应用中把现有客户端切换过来;大批量时加上代理,再把返回的通行凭证设置为 aws-waf-token Cookie。 打开 API 文档
CapSkip 与按次计费的 AWS WAF 验证码识别对比
同样的 Amazon WAF 挑战,两种付费方式:本地统一价格套餐,或随每个通行凭证不断增长的账单。
| 功能 | CapSkip | 按次服务 |
|---|---|---|
| 计费方式 | 月费 $35 起,识别次数不限 | 每 1,000 次 AWS WAF 识别约 $1.45 |
| 谜题类型 | 图片九宫格与玩具车路线谜题 | 因服务而异 |
| 呈现形式 | 405 拦截页与 JS-API 小组件 | 取决于具体服务 |
| 识别在哪里运行 | 你自己的 Windows 桌面电脑、VPS 或服务器 | 他们的服务器,每个任务都要上传一次 |
| 通行凭证过期后的重试 | 免费,不计次数 | 作为新的识别再次收费 |
| 客户端代码 | 你现有的 in.php 或 createTask 客户端,无需改动 | 只能用他们自己的任务格式 |
| 扩大规模 | 速度由你的硬件和代理池决定 | 共享队列,外加按账户限制 |
想先试用一下?
开始 3 天免费试用,在你自己的目标上识别 500 个任意类型的验证码。
相关验证码识别工具与指南
AWS WAF 验证码的工作原理,以及如何通过 API 识别
AWS WAF 是 Amazon Web Services 部署在 CloudFront 分发、负载均衡器和 API 网关前面的防火墙。网站所有者编写规则来决定如何处理每个请求,其中一种可选动作就是 CAPTCHA。规则一旦触发,访客得到的就不是请求的页面,而是一道谜题;只有解出谜题,才能拿到 aws-waf-token Cookie,让后续请求在它过期之前顺利通过。
挑战会以两种形式之一出现。常见的是拦截页:服务器返回 HTTP 状态码 405 和一个小型 HTML 页面,页面中定义了 window.gokuProps(一个 key、一个 iv 和一个 context),并从 awswaf.com 的主机加载 challenge.js 和 captcha.js。另一种是 JavaScript API:网站嵌入 jsapi.js,并用自己的 API 密钥调用 AwsWafCaptcha.renderCaptcha,于是谜题出现在表单内部,而不是替换整个页面。AWS WAF 识别工具必须两种都能接受。
谜题本身通常是图片九宫格:九张照片,一条点名日常物品的提示(比如包、床、时钟或窗帘),外加一个确认按钮。第二种要求访客驾驶玩具车穿过小镇,开到道路尽头。此外还有一个面向无障碍需求的音频选项。不管出现哪一种,你的客户端关心的结果都一样:一个有效的通行凭证,或者在旧版 API 中,页面用来换取 Cookie 的 captcha_voucher 和 existing_token 这一对值。
规模化时,先规划网络,再写代码。用单个 IP 在几个页面上试用 CapSkip 没有问题,但每天触发 AWS WAF 数千次的爬虫应当轮换使用代理池:要么加载到 CapSkip 应用中,要么通过 proxy 和 proxytype 字段随每个请求发送。让 Cookie 跟随请求它的会话,当网站又开始返回 405 时,再申请一个新的。
对于 AWS WAF 验证码,CapSkip 具体返回什么?
我需要发送哪些参数?
CapSkip 除了图片九宫格,也能识别玩具车谜题吗?
405 页面和 AWS WAF 验证码小组件有什么不同?
大批量识别 AWS WAF 验证码需要代理吗?
我现有的 Amazon WAF 验证码代码能指向 CapSkip 吗?
识别一次 AWS WAF 需要多久?
AWS WAF 验证码为什么要选统一价格套餐,而不是按次付费?
通过 AWS WAF 验证码,不再按通行凭证付费
安装 CapSkip 并登录,把 AWS WAF 挑战发送到你自己的机器上。九宫格谜题、玩具车谜题和通行凭证过期后的重试,全都包含在一份月费套餐里。
