回答
要实现抢速度第一个私信小红书作者,核心思路是监听作者发布笔记的动态,并在第一时间检测到后立即发送私信。由于小红书没有公开的发布通知 API,通常是利用 Hamibot 的自动化能力,定时刷新作者的首页,一旦出现新笔记,立即点击进入作者主页,然后触发私信按钮并发送设定好的消息。
下面提供一个可运行的脚本示例,你可以在 Hamibot 中创建脚本并运行。该脚本会循环检测指定作者的笔记列表,一旦发现新笔记(通过笔记 ID 或标题判断),就自动进入私信流程。
// 文档地址 https://docs.hamibot.com/
// 抢速度第一个私信小红书作者
// 配置区域
var AUTHOR_ID = "作者的小红书ID"; // 目标作者的 ID,例如 5e8f8f9a0000000001000000
var MESSAGE = "你好,我是第一个私信你的!"; // 要发送的私信内容
var CHECK_INTERVAL = 2000; // 检测间隔,单位毫秒,建议不要过短,避免被限流
// 记录上次最新的笔记 ID,用于判断是否有新笔记
var lastNoteId = null;
// 获取作者主页笔记列表中的第一个笔记 ID
function getFirstNoteId() {
// 在作者主页中,笔记列表的第一个笔记通常有特定标识,这里假设使用 id 属性
var firstNote = id("笔记列表第一个元素的 id").findOne(1000);
if (firstNote) {
return firstNote.attr("id"); // 替换为实际获取笔记 ID 的方法
}
return null;
}
// 进入作者主页
function gotoAuthorProfile() {
// 假设通过搜索进入,或直接打开作者主页 URL
app.openUrl("https://www.xiaohongshu.com/user/profile/" + AUTHOR_ID);
sleep(3000);
// 等待主页加载完成,可能需要处理一些弹窗
if (text("不能只看不点赞哦").exists()) {
back();
sleep(1000);
}
}
// 点击私信按钮
function clickPrivateMessage() {
// 私信按钮通常在作者头像下方,文字可能是“私信”或图标
var pmBtn = desc("私信").findOne(2000);
if (!pmBtn) {
pmBtn = text("私信").findOne(2000);
}
if (pmBtn) {
pmBtn.click();
sleep(1000);
return true;
}
return false;
}
// 输入私信内容并发送
function sendMessage() {
// 等待输入框出现
var input = className("EditText").findOne(3000);
if (input) {
input.setText(MESSAGE);
sleep(500);
// 点击发送按钮
var sendBtn = desc("发送").findOne(2000);
if (!sendBtn) {
sendBtn = text("发送").findOne(2000);
}
if (sendBtn) {
sendBtn.click();
log("私信发送成功!");
return true;
}
}
return false;
}
// 主检测循环
function main() {
while (true) {
// 进入作者主页
gotoAuthorProfile();
// 获取当前第一个笔记 ID
var currentNoteId = getFirstNoteId();
if (currentNoteId) {
// 如果是第一次运行,记录当前笔记 ID,不发送私信
if (lastNoteId === null) {
lastNoteId = currentNoteId;
log("初始化记录,当前最新笔记 ID:" + currentNoteId);
} else if (currentNoteId !== lastNoteId) {
log("检测到新笔记!ID:" + currentNoteId);
// 发现新笔记,立即执行私信流程
if (clickPrivateMessage()) {
sendMessage();
// 发送后退出循环或继续监听,根据需求调整
break; // 只抢一次,发送后停止
}
// 更新记录
lastNoteId = currentNoteId;
}
}
sleep(CHECK_INTERVAL);
}
}
// 启动
main();
重要说明
- 上述代码中的选择器(如
id("笔记列表第一个元素的 id"))需要根据实际页面元素调整。你可以使用 Hamibot 的 悬浮窗选择器 来获取准确的控件 ID、文本或描述。 - 私信入口可能因页面版本不同而变化,建议通过
desc或text模糊匹配。 - 检测间隔不要太短,否则容易被小红书限制访问频率。建议 2-3 秒以上。
- 如果需要在后台持续运行,请确保 Hamibot 保持前台服务,并给予无障碍权限。
- 该脚本只会在检测到新笔记时发送一次私信,如果希望持续抢第一个,可以去掉
break并不断更新lastNoteId。
优化建议
- 使用
images模块检测页面变化,而不是依赖笔记 ID,可以更快速地响应界面更新。 - 如果作者发布频率高,可以结合 Hamibot 的定时任务,只在作者活跃时段运行脚本,减少资源消耗。
如果遇到具体控件无法定位的问题,可以先用 Hamibot 的“录制”功能生成操作代码,再整合到检测逻辑中。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实