一个 Tampermonkey 油猴脚本,帮你定时自动抢购智谱 GLM Coding Plan。每天放量秒空、按钮一变灰就抢不到的痛点,本脚本通过服务器时间对齐 + DOM 变更监听 + 可点瞬间自动触发来解决。
⚠️ 声明:本工具仅用于辅助个人购买,模拟的是人类点击行为(速度更快),不绕过任何价格、库存或风控机制。使用前请阅读 bigmodel.cn 服务条款,自负其责。请勿用于黄牛、转售或大规模并发。
- ⏱ 服务器时间对齐:抓取目标站 HTTP
Date响应头,自动校准本地时钟偏移,避免电脑慢半秒错过开抢 - 🎯 双策略找按钮:CSS 选择器 + 文字关键词("立即购买/开通/抢购/领取"等),多档套餐时按关键词锁定目标档位
- 🚀 冲刺模式:T-3 秒进入冲刺,MutationObserver 监听 DOM 变更 + 120ms 轮询双保险,按钮变可点的那一帧立即触发
- 🔁 失败自动重试:上限 80 次,可调
- 🔊 成功提醒:三声蜂鸣 + 系统通知 + 浏览器标题闪烁,提示你立即扫码支付
- 💾 状态持久化:配置保存在 Tampermonkey 存储,T-0 强制 reload 选项重载后自动恢复冲刺态
- 🎛 可视化面板:可拖拽的悬浮控制台,含倒计时、状态、实时日志、测试按钮
Chrome / Edge / Firefox 应用商店搜 Tampermonkey 安装。
Chrome 需额外开启:地址栏 chrome://extensions/ → 找到 Tampermonkey 详情 → 打开 "允许访问文件网址"。
任选一种:
- 方式 A:点 Tampermonkey 图标 → 创建新脚本 → 把
glm-coding-grabber.user.js全文复制粘贴覆盖默认模板 → Ctrl+S 保存 - 方式 B:把
.user.js文件直接拖进 Tampermonkey 管理面板 - 方式 C:浏览器打开 GitHub Raw 链接,Tampermonkey 会自动识别并提示安装
- 用 Chrome 登录智谱账号
- 打开 https://www.bigmodel.cn/glm-coding
- 右下角出现黑色面板
- 点 "测试找按钮" → 看日志:
- 找到候选并被红框圈出 ✅ → 直接进入下一步
- 找不到 ❌ → 见下方"调优"章节
- 点 "测铃" → 听到三声"嘀-嘟-嘀"说明音频和系统通知权限正常
- 提前 5-10 分钟打开 GLM Coding 页面,保持登录态
- 把 "开抢时间" 改成实际放量时间(务必到官方公告/官方群确认精确秒数)
- "套餐关键词" 填想抢的档位名(如
Pro、Max、包年),单档套餐留空 - 点 "武装" → 黄色倒计时开始跳秒
- 不要切到别的浏览器标签太久(部分浏览器会限制后台标签的 JS 执行速度)
- T-3 秒自动进入冲刺,按钮可点的瞬间自动点击
- 三声蜂鸣 + 系统通知 + 标题变 "⚡ 抢到了!" → 立即用手机扫码支付
智谱页面用了 React,按钮 class 是哈希过的,文字关键词通常够用。如果"测试找按钮"找不到:
- F12 打开 DevTools
- 右键页面上的"立即购买"按钮 → 检查
- 在 Elements 面板找一个稳定的 class,比如
class="purchase-btn ant-btn-primary" - 把
.purchase-btn粘到面板的 "按钮 CSS 选择器" 框(一行一个) - 再点"测试找按钮"验证
| 项目 | 建议 |
|---|---|
| 网络 | 有线 > Wi-Fi > 4G;RTT 每减 50ms 都是胜算 |
| 浏览器 | 关掉无关标签和扩展,避免主线程被抢占 |
| 登录态 | 开抢前 1 分钟手动点一下"我的账户"确认 cookie 未过期 |
| 多保险 | 开 2-3 个标签页一起武装,万一一个卡住还有备份 |
| 时钟校准 | 不靠脚本:Windows 设置 → 时间和语言 → 同步时间 |
| 时间确认 | 官方公告/官方群核实精确秒数(10:00:00 vs 10:00:30 差距巨大) |
面板里可改,也可直接编辑脚本 DEFAULTS 对象:
| 字段 | 默认值 | 含义 |
|---|---|---|
targetTime |
"10:00:00" |
开抢时间(本地 HH:MM:SS) |
planKeyword |
"" |
套餐过滤关键词 |
buttonSelectors |
[] |
手工 CSS 选择器列表 |
buttonTexts |
内置列表 | 按钮文字关键词 |
sprintBeforeMs |
3000 |
T-N 毫秒进入冲刺 |
reloadAtT0 |
false |
T-0 强制重载页面 |
retryIntervalMs |
120 |
冲刺轮询间隔 |
maxRetries |
80 |
最大重试次数 |
T-30min → 打开页面,手动武装
T-? → fetch /favicon.ico HEAD 取 7 次样本,按 RTT 排序取低延迟均值,算 server-local 偏移
T-3s → startSprint(): MutationObserver(class/disabled/style 变更) + setInterval(120ms) 双轮询
T-0 → 按钮 disabled 解除瞬间 → MutationObserver 触发 attempt() → findButtons() → isClickable() → click()
T+0 → 三声 OscillatorNode 蜂鸣 + GM_notification + document.title 闪烁
T+0~4s → 继续冲刺以处理"确认开通"/"立即支付"等弹窗
扫码 → 人工完成
Q: 这算外挂吗?会封号吗? A: 脚本只是模拟你自己手快点击,不调用任何私有 API,不伪造任何数据。但智谱条款里可能禁止自动化访问,封号风险自负。建议同一个号别开十几个标签页疯狂武装。
Q: 为什么我倒计时正常但没自动点? A: 八成是按钮没找到。开抢前先点"测试找按钮"验证;找不到就按"调优"章节补 CSS 选择器。也可能是套餐关键词没匹配到——留空试试。
Q: 用 Playwright/Selenium 不是更快吗? A: 不见得。脚本内嵌在已登录的浏览器里,省掉 cookie 同步、二次登录、扫码会话保持的麻烦。Playwright 需要本地跑 Python/Node 进程,对扫码支付不友好。
Q: 移动端能用吗? A: 不能,Tampermonkey 主要在桌面浏览器。手机抢购请用浏览器自带的网页(智谱有 App 但本脚本不针对 App)。
MIT — 用之前请读上面那个"声明"。