回答
实现小红书评论自动点赞的脚本,主要依赖 Hamibot 的无障碍服务(Accessibility Service)进行 UI 自动化操作。你需要通过控件特征(如文本、ID、描述)定位到点赞按钮并执行点击。
以下是基于 Hamibot 环境编写的脚本模板及关键注意事项。请注意,由于第三方应用界面经常更新,控件特征可能需要根据实际情况调整。
脚本编写要点
- 兼容性:Hamibot 使用 Rhino 1.7.15 引擎,不支持箭头函数和函数默认参数。
- 权限:运行前需开启“无障碍服务”权限。
- 稳定性:建议增加随机延时,模拟人工操作,降低被风控风险。
- 控件定位:优先使用
id或desc,其次使用text,因为 ID 通常更稳定。
参考代码示例
// 文档地址 https://docs.hamibot.com/
// 注意:本脚本仅为技术演示,请遵守小红书用户协议,合理使用自动化功能
auto.waitFor(); // 等待无障碍服务启动
// 配置参数
var targetApp = "com.xingin.xhs"; // 小红书包名
var maxLikes = 5; // 单次运行最大点赞数
var delayMin = 1000; // 最小延迟毫秒
var delayMax = 3000; // 最大延迟毫秒
function randomDelay(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
// 打开小红书
app.startActivity({
packageName: targetApp
});
// 等待首页加载完成,这里假设进入的是发现页或笔记详情页
// 实际使用时需要根据你的具体场景调整等待条件
sleep(3000);
var count = 0;
while (count < maxLikes) {
try {
// 尝试查找点赞按钮
// 注意:这里的 descEndsWith("赞") 需要根据实际界面文字修改
// 例如可能是 "赞","收藏",或者具体的数字加赞
var likeBtn = descEndsWith("赞").findOne(5000);
if (likeBtn) {
// 获取坐标
var bounds = likeBtn.bounds();
var x = bounds.centerX();
var y = bounds.centerY();
// 点击操作
click(x, y);
count++;
log("已点赞第 " + count + " 条");
// 随机延迟,模拟人工
sleep(randomDelay(delayMin, delayMax));
// 滑动屏幕以加载更多评论
swipe(device.width / 2, device.height * 0.8, device.width / 2, device.height * 0.2, 500);
sleep(randomDelay(delayMin, delayMax));
} else {
// 如果找不到点赞按钮,可能没有更多评论或需要刷新
log("未找到点赞按钮,尝试滑动");
swipe(device.width / 2, device.height * 0.8, device.width / 2, device.height * 0.2, 500);
sleep(2000);
// 防止死循环,如果多次找不到则退出
if (count === 0 && !likeBtn) {
toast("未检测到可点赞内容,请检查是否处于正确页面");
break;
}
}
} catch (e) {
log("发生错误:" + e);
sleep(2000);
}
}
toast("任务完成,共点赞 " + count + " 次");
hamibot.exit();
最佳实践建议
-
调试控件:
在 Hamibot 控制台或手机上的“选择器”工具中查看当前页面的控件信息。确认点赞按钮的text、desc或resource-id是什么。小红书不同版本的控件 ID 可能会变化,务必先验证。 -
异常处理:
网络波动或弹窗广告可能导致脚本中断。建议在关键操作前加入waitForActivity或waitForPackage确保页面状态正确。 -
风险控制:
自动化操作过于频繁容易触发平台风控机制。建议设置较大的随机延时,并且不要长时间连续运行。 -
版本适配:
如果脚本失效,通常是应用更新了 UI 结构。你需要重新抓取控件特征并修改代码中的选择器部分。
如果你在使用过程中遇到具体的报错或无法定位控件的情况,可以提供具体的错误日志或截图描述,我可以协助你分析代码逻辑。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实