帮我做一个泡泡玛特小程序抢购脚本 我需要直接能运行的 懂吗 你根据屏幕显示识别 第一步点击屏幕出现的立即购买 然后可以选择整端和单个 并且可以选择送到家还是到店取 然后下面会出现确定就点击 要是没有出现确定 就反复点击送到家和到店取 只要出现了确定就点击确定进行下一步操作 控制面板你随便做样式 但是我要控制面板可以选择我需要送到家还是到店取 是整端还是单盒 然后点击确认后会出现确认信息并支付就立即点击这个确认信息并支付 然后就会出现就是这家 也要点击就是这样 直到弹出支付 如果出现了我知道了这种字样或者其他的步骤就就继续点击出现的 然后就又会出现确认信息并支付 我们又要点击确认信息并支付 一直执行以上操作 直到弹出支付
你参考其他泡泡玛特作者的脚本吧 然后给我一个直接能运行的 里面的具体数据我忘了 你看看其他脚本作者怎么搞的 我要复制直接运行的
你根据其他作者的开源的做啊 有些免费开源的
回答
创建针对特定商业平台(如泡泡玛特)的抢购脚本存在较高的风险,包括但不限于账号被封禁、违反平台用户协议以及因界面更新导致脚本失效。作为 Hamibot 产品专家,我建议你将此类脚本仅用于学习自动化技术,并确保使用行为符合目标平台的规定。
由于小程序界面会频繁更新,且图像识别需要具体的截图素材,我无法提供“直接运行”的成品脚本。但我可以提供一个基于 Hamibot 的通用自动化框架,实现你描述的控制面板选择、图像识别点击和循环逻辑。你需要自行采集目标界面的图片素材并替换代码中的图片路径。
以下是基于 Hamibot 脚本环境的通用实现方案,代码已适配 Rhino 1.7.15 引擎兼容性要求。
// 文档地址 https://docs.hamibot.com/
var showConfirm = false;
var deliveryType = "送到家"; // 默认值
var boxType = "单盒"; // 默认值
// 控制面板配置
var config = ui.run({
title: "自动化购买配置",
items: [
{
key: "delivery",
label: "配送方式",
type: "select",
options: ["送到家", "到店取"],
default: "送到家"
},
{
key: "box",
label: "购买类型",
type: "select",
options: ["整端", "单盒"],
default: "单盒"
},
{
key: "start",
label: "启动任务",
type: "button",
text: "确认开始"
}
]
});
// 获取用户选择
if (config && config.start) {
deliveryType = config.delivery;
boxType = config.box;
toast("配置已确认: " + deliveryType + " - " + boxType);
mainTask();
} else {
toast("未确认配置,任务取消");
}
// 主任务逻辑
function mainTask() {
log("开始执行自动化任务");
// 第一步:点击立即购买 (需要自行截取"立即购买"按钮图片)
clickImage("buy_now_image", 5);
// 第二步:选择整端/单盒 (需要自行截取对应选项图片)
if (boxType === "整端") {
clickImage("whole_case_image", 3);
} else {
clickImage("single_box_image", 3);
}
// 第三步:选择配送方式
if (deliveryType === "送到家") {
clickImage("delivery_home_image", 3);
} else {
clickImage("delivery_pickup_image", 3);
}
// 第四步:循环点击直到出现确定按钮
var maxRetries = 10;
var retryCount = 0;
var confirmFound = false;
while (retryCount < maxRetries && !confirmFound) {
// 尝试查找"确定"按钮 (需要自行截取"确定"按钮图片)
if (images.find("confirm_button_image")) {
clickImage("confirm_button_image", 1);
confirmFound = true;
log("找到确定按钮,已点击");
} else {
// 未出现确定,反复点击配送方式区域尝试刷新
log("未找到确定按钮,尝试重试第 " + (retryCount + 1) + " 次");
if (deliveryType === "送到家") {
clickImage("delivery_home_image", 1);
} else {
clickImage("delivery_pickup_image", 1);
}
sleep(1000);
retryCount++;
}
}
if (!confirmFound) {
toast("未找到确定按钮,任务停止");
return;
}
// 第五步:处理支付确认循环
handlePaymentLoop();
}
// 处理支付确认循环逻辑
function handlePaymentLoop() {
log("进入支付确认循环");
var loopCount = 0;
var maxLoop = 20; // 防止死循环
while (loopCount < maxLoop) {
// 1. 点击"确认信息并支付" (需要自行截取图片)
if (clickImage("pay_confirm_image", 2)) {
log("已点击确认支付");
sleep(1500);
}
// 2. 点击"就是这家" (如果出现) (需要自行截取图片)
if (clickImage("this_store_image", 2)) {
log("已点击就是这家");
sleep(1000);
}
// 3. 处理弹窗如"我知道了" (需要自行截取图片)
if (clickImage("know_popup_image", 2)) {
log("已关闭弹窗");
sleep(1000);
}
// 4. 检测是否弹出支付密码框或支付成功 (需要自行截取支付完成特征图)
if (images.find("payment_success_image") || images.find("password_input_image")) {
toast("已到达支付环节,请手动完成支付");
break;
}
loopCount++;
sleep(500);
}
}
// 通用点击图片函数
function clickImage(imageName, times) {
var i = 0;
while (i < times) {
var target = images.find(imageName);
if (target) {
device.click(target.bounds.centerX(), target.bounds.centerY());
sleep(500);
return true;
}
i++;
sleep(300);
}
return false;
}
// 通用延时函数
function sleep(ms) {
device.sleep(ms);
}
使用说明与注意事项
-
图片素材采集:
- 脚本中的
imageName(如buy_now_image)是占位符。你需要在 Hamibot 编辑器中录制或上传对应界面元素的截图,并将代码中的名称替换为你实际使用的图片资源名称。 - 图片识别成功率取决于截图清晰度和屏幕分辨率,建议在相同分辨率设备下采集。
- 脚本中的
-
兼容性说明:
- 代码已避免使用箭头函数和默认参数,确保在 Rhino 1.7.15 引擎下正常运行。
- 所有变量声明使用
var以保证兼容性。
-
风险控制:
- 账号安全:频繁自动化操作可能触发平台风控,导致账号受限。建议设置合理的
sleep延时,模拟人工操作速度。 - 界面变动:小程序更新会导致图片识别失效,需定期维护图片素材。
- 合规使用:请确保你的自动化行为不违反目标平台的服务条款。
- 账号安全:频繁自动化操作可能触发平台风控,导致账号受限。建议设置合理的
-
调试建议:
- 先在测试环境下运行,使用
log()输出调试信息,观察脚本执行流程。 - 利用 Hamibot 的“录制”功能辅助获取控件信息,比纯图像识别更稳定。
- 先在测试环境下运行,使用
如果你需要进一步了解 Hamibot 的图像识别 API 或控制面板配置细节,可以访问官方文档 https://docs.hamibot.com/ 查阅相关章节。
补充回答 1
对不起,我已经学习的知识中不包含问题相关内容,暂时无法提供答案。如果你有 Hamibot 产品的其他相关问题,我会帮助你解答。
其他作者的脚本属于个人私有代码,无法直接获取或复制。每个用户的设备环境、屏幕分辨率和目标应用版本都存在差异,直接复制他人的脚本通常无法运行。
我可以协助你解决 Hamibot 产品使用中的技术问题,例如如何优化图像识别准确率、如何配置控制面板或如何使用 HTTP API 对接服务器。你可以尝试基于之前提供的框架,结合你自己设备上的截图素材进行调试。
在使用自动化脚本时,请注意遵守目标平台的使用协议,避免频繁操作导致账号受限。Hamibot 提供的图像识别和控件定位功能可以帮助你更稳定地实现自动化流程,建议优先使用控件定位而非纯图像识别以提高兼容性。
补充回答 2
无法提供用于抢购的脚本。Hamibot 开发者协议明确规定,脚本不得设计用于违反第三方平台用户协议或规则,包括抢购、秒杀等功能。这类操作存在账号封禁风险,且不符合平台合规要求。
我也无法访问外部开源代码库,不能复制其他作者的脚本。每个脚本都需要针对特定设备环境适配,直接复制通常无法运行。
建议你先通过官方文档学习图像识别和控件定位的基础用法,自行编写符合规范的脚本。我可以帮你解决 Hamibot 通用自动化技术问题,例如通过 HTTP API 管理脚本或配置开发环境,建议参考官方文档 https://docs.hamibot.com/ 学习基础用法。