回答
以下是一个基于HamiBot的鲸探自动化抢购脚本示例。请根据实际界面调整元素名称和逻辑,并注意遵守平台规则:
// 鲸探自动化抢购脚本(示例)
// 配置选项(在脚本设置中启用)
let TELEMETRY = false; // 是否发送日志(调试用)
// 抢购主逻辑
auto.waitFor();
// 界面元素常量(需根据实际情况修改)
const BUY_BUTTON_TEXT = "立即购买";
const CONFIRM_BUTTON_TEXT = "确认支付";
const RETRY_INTERVAL = 1000; // 重试间隔(毫秒)
// 开始监控
function startMonitoring() {
toastLog("鲸探抢购脚本已启动");
while (true) {
// 检测购买按钮
let buyBtn = text(BUY_BUTTON_TEXT).findOne(RETRY_INTERVAL);
if (buyBtn) {
clickElement(buyBtn, "立即购买按钮");
handlePayment();
break;
}
// 检测倒计时结束(可选)
let countdown = text("立即").find(); // 根据实际倒计时文字调整
if (countdown.length > 0) {
toastLog("检测到倒计时结束,加强监控");
RETRY_INTERVAL = 200; // 缩短间隔
}
}
}
// 处理支付确认
function handlePayment() {
sleep(1500); // 等待跳转页面
let confirmBtn = text(CONFIRM_BUTTON_TEXT).findOne(3000);
if (confirmBtn) {
clickElement(confirmBtn, "支付确认按钮");
sendTelemetry("🎉 抢购成功!已确认支付");
} else {
sendTelemetry("⚠️ 未找到支付确认按钮");
toastLog("未找到支付确认按钮,请手动操作");
}
}
// 点击元素并记录
function clickElement(element, name) {
element.bounds().click();
toastLog(`已点击:${name}`);
sendTelemetry(`✅ 点击 ${name}`);
}
// 发送日志(可选)
function sendTelemetry(message) {
if (TELEMETRY) {
hamibot.postMessage(Date.now().toString(), {
telemetry: true,
data: {
title: '鲸探抢购日志',
attachments: [{
type: 'text',
data: `[${new Date().toLocaleTimeString()}] ${message}`
}]
}
});
}
}
// 错误处理
auto.on("error", function (e) {
sendTelemetry(`❌ 错误:${e}`);
toastLog("发生错误,请检查日志");
});
// 启动监控
startMonitoring();
使用说明:
-
配置选项:
- 在脚本设置中添加 telemetry 选项(参考文档4的配置方法)
- 修改
TELEMETRY
布尔值控制日志发送
-
关键参数:
- 修改
BUY_BUTTON_TEXT
和CONFIRM_BUTTON_TEXT
为实际按钮文字 - 调整
RETRY_INTERVAL
控制检测频率(数值越小响应越快)
- 修改
-
增强功能:
// 可添加以下功能(需根据需求调整) // 1. 多设备支持 // 2. 时间戳触发(配合系统计划任务) // 3. 图像识别(当文字检测不可靠时) // 4. 网络请求模拟(需逆向接口)
-
注意事项:
- 首次运行建议开启 telemetry 查看日志
- 实际按钮文字可能因版本变化而不同
- 部分界面需要处理滑动操作(可添加
id("recycler_view").scrollForward()
) - 支付环节可能需要特殊处理(如短信验证)
风险提示:
- 需确保遵守《鲸探平台用户协议》
- 高频率操作可能导致账号风控
- 建议先在测试环境验证逻辑
建议在正式使用前,先通过 auto.disableSleep()
防止屏幕休眠,并在模拟环境下充分测试。
本回答由 AI 生成,内容仅供参考
ℹ️ 本回答由 AI 生成,内容仅供参考
还有没有最新版本