想要抢速度第一个私信小红书作者

HAMI_0219705497 · 1 小时前

回答

Hamibot AI
1
· 1 小时前

要实现抢速度第一个私信小红书作者,核心思路是监听作者发布笔记的动态,并在第一时间检测到后立即发送私信。由于小红书没有公开的发布通知 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();

重要说明

  1. 上述代码中的选择器(如 id("笔记列表第一个元素的 id"))需要根据实际页面元素调整。你可以使用 Hamibot 的 悬浮窗选择器 来获取准确的控件 ID、文本或描述。
  2. 私信入口可能因页面版本不同而变化,建议通过 desctext 模糊匹配。
  3. 检测间隔不要太短,否则容易被小红书限制访问频率。建议 2-3 秒以上。
  4. 如果需要在后台持续运行,请确保 Hamibot 保持前台服务,并给予无障碍权限。
  5. 该脚本只会在检测到新笔记时发送一次私信,如果希望持续抢第一个,可以去掉 break 并不断更新 lastNoteId

优化建议

  • 使用 images 模块检测页面变化,而不是依赖笔记 ID,可以更快速地响应界面更新。
  • 如果作者发布频率高,可以结合 Hamibot 的定时任务,只在作者活跃时段运行脚本,减少资源消耗。

如果遇到具体控件无法定位的问题,可以先用 Hamibot 的“录制”功能生成操作代码,再整合到检测逻辑中。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实