Clawdbot自动抢票失败主因是平台反自动化策略触发,需依次检查接口限流、校验API配置、启用Cookie持久化、校准时间戳、禁用沙箱模式并启用浏览器模式。

如果您使用 Clawdbot 执行自动抢票任务但始终无法成功下单或获取车票,则可能是由于目标购票平台的反自动化策略触发、会话隔离机制限制、网络请求配置错误或 Token 消耗异常所致。以下是解决此问题的步骤:
一、检查购票平台接口是否被屏蔽或限流
Clawdbot 在非主会话(如群聊触发、定时任务)中默认运行于沙箱模式,所有 HTTP 请求均经由受限容器发出,部分购票平台(如12306)会对容器 IP 段实施高频访问拦截。需确认当前执行环境是否处于主会话,并验证出口 IP 是否已被目标平台列入黑名单。
1、在终端执行 clawdbot status --all,观察 gateway 和 agent 状态是否为 active。
2、运行 clawdbot logs --follow --tail 50 gateway,查找包含 “429 Too Many Requests” 或 “403 Forbidden” 的日志行。
3、若发现限流响应,临时切换至主会话:在 Telegram 私聊中向 bot 发送 /switch_to_main 指令。
二、校验购票插件的 API 配置与认证凭证
Clawdbot 抢票功能依赖第三方购票插件(如 train-ticket-proxy),其配置文件位于 ~/.clawdbot/plugins/train-ticket-proxy/config.json。若 API Key 过期、签名算法不匹配或 endpoint 路径错误,将导致请求被平台拒绝,表现为无响应或空返回。
1、执行 cat ~/.clawdbot/plugins/train-ticket-proxy/config.json | jq '.auth.apiKey',确认字段值非空且未被截断。
2、比对配置中的 baseUrl 与官方文档最新地址是否一致,例如 12306 官方接口已从 https://kyfw.12306.cn/otn/ 升级为 https://kyfw.12306.cn/otn/bulletin/。
3、手动测试接口可用性:curl -H "Authorization: Bearer $(cat ~/.clawdbot/plugins/train-ticket-proxy/config.json | jq -r '.auth.token')" https://kyfw.12306.cn/otn/bulletin/query,观察返回状态码。
三、启用会话级 Cookie 持久化与 UA 拦截绕过
多数抢票平台要求完整复现浏览器登录态,包括有效 Cookie、Referer、User-Agent 及 TLS 指纹。Clawdbot 默认使用精简 HTTP 客户端,若未显式加载用户浏览器导出的 session 数据,将无法通过平台风控校验。
1、在 Chrome 中登录购票平台后,打开开发者工具 → Application → Cookies,点击右上角三个点 → “Save all as…” 导出 cookies.json。
2、将该文件复制至 ~/.clawdbot/sessions/ticket-login.cookies.json。
3、编辑 ~/.clawdbot/clawdbot.json,在 plugins.train-ticket-proxy 节点下添加字段:"cookieFile": "~/.clawdbot/sessions/ticket-login.cookies.json"。
四、调整并发请求策略与时间戳偏移校准
Clawdbot 默认采用固定间隔轮询,而主流购票平台(如高铁管家、智行)已部署毫秒级时间窗口检测。若本地系统时间与 NTP 服务器偏差超过 500ms,或请求 timestamp 参数未动态生成,将直接触发 token 失效判定。
1、同步系统时间:sudo ntpdate -s time.windows.com(Linux/macOS)或使用系统设置手动校准。
2、进入插件目录:cd ~/.clawdbot/plugins/train-ticket-proxy。
3、修改 lib/request.js,将原 timestamp 字段替换为:Math.floor(Date.now() / 1000) + Math.floor(Math.random() * 100)。
五、禁用沙箱模式并提升主会话权限等级
当抢票逻辑涉及多步跳转(如验证码识别→订单预提交→支付页跳转),沙箱容器无法持久维持跨域上下文。必须强制在主会话中以 full-permission 模式运行,允许 Clawdbot 直接调用本地 chromedriver 实例完成真实浏览器操作。
1、确认已安装 ChromeDriver:which chromedriver,若未安装则执行 brew install chromedriver(macOS)或 sudo apt install chromium-chromedriver(Ubuntu)。
2、在 ~/.clawdbot/clawdbot.json 中添加全局配置项:"browserMode": "full" 和 "sandboxDisabled": true。
3、重启服务:clawdbot stop && clawdbot start,随后在 Telegram 主会话中发送 /ticket_mode browser 启用浏览器模式。











