← 返回
未分类

抖音自动回复评论

抖音评论区自动回复。支持两种模式:(1) 从创作者中心评论管理页面回复;(2) 从个人主页→点作品→评论区逐条回复。自动识别已回复/未回复,逐条发送。
抖音评论区自动回复。支持两种模式:(1) 从创作者中心评论管理页面回复;(2) 从个人主页→点作品→评论区逐条回复。自动识别已回复/未回复,逐条发送。
叫我老大哥
未分类 community v3.1.0 4 版本 100000 Key: 无需
★ 0
Stars
📥 170
下载
💾 0
安装
4
版本
#latest

概述

抖音自动回复评论技能(v3.1)

> 📌 v3.1 更新:修复评论区滚动加载问题(必须滚动容器而非window),确认Draft.js输入方式(只能用keyboard.type),强调回复要自然口语化。

抖音评论区自动回复。核心逻辑:

  1. 打开个人主页 → 选择已发布作品(视频或图文)
  2. 在容器内滚动加载全部评论区
  3. 检查每条评论的回复状态(找「作者」标记)
  4. 逐个回复未回复的评论 → 全部处理完
  5. 切换下一个作品,重复以上步骤

一、两种模式对比

模式入口优点缺点适用场景
:----::----::----:----:--------
模式A 🆕个人主页→点作品→评论区真实用户操作流,不易被风控评论懒加载需滚动容器首选
模式B创作者中心评论管理操作直接入口不同,易被检测备选

二、模式A:从个人主页回复(首选)

完整操作流程

个人主页(/user/self)
  ↓ 选择已发布作品(/video/{id} 或 /article/{id})
  ↓ 滚动到评论区→加载全部评论
  ↓ 从第一条开始,逐条检查
  ↓ 有「作者」标记? → 已回复,跳过
  ↓ 无「作者」标记? → 点「回复」
  ↓ keyboard.type 输入回复(自然口语)
  ↓ Enter 发送
  ↓ 间隔2-3秒 → 下一条
  ↓ 全部回完 → 下一个作品

1. 打开作品

  • 个人主页:https://www.douyin.com/user/self
  • 视频作品:/video/{id}
  • 图文作品:/article/{id}

2. 滚动到评论区

// 找到「全部评论」标签,滚到该位置
const all = document.querySelectorAll('*');
for (const el of all) {
  if (el.textContent.includes('全部评论')) { 
    el.scrollIntoView({ block: 'start' });
    break;
  }
}

3. 加载全部评论 ⚠️ 核心难点

关键:评论区在一个独立滚动容器里,用 window.scrollBy 无效!

// ✅ 正确:滚动容器
const container = document.querySelector('.parent-route-container, [class*="route-scroll"]');
container.scrollTop = container.scrollTop + 80;

// ❌ 错误:window.scrollBy(0, 50) — 不会加载更多评论

完整加载循环:

for (let i = 0; i < 50; i++) {
  const container = document.querySelector('.parent-route-container, [class*="route-scroll"]');
  if (container) container.scrollTop = container.scrollTop + 80;
  await new Promise(r => setTimeout(r, 500));
}
// 等渲染
await new Promise(r => setTimeout(r, 2000));

检查是否还有更多:

const hasLoading = document.body.innerText.includes('加载中');
const hasMore = document.body.innerText.includes('暂时没有更多评论');
// 如果没有"加载中"但有"暂时没有更多",说明全部加载完毕

4. 判断回复状态

核心规则:每条用户评论下面找是否有「小小程序猿 作者」文本

已回复的评论结构:
┌─ 用户名
│  评论内容
│  回复
│  └─ 小小程序猿 作者  ← ⚠️ 有「作者」标记
│     回复内容

未回复的评论结构:
┌─ 用户名
│  评论内容
│  回复                        ← ⚠️ 无「作者」

检测方法:

// 遍历所有"回复"文本元素,检查上下文中是否包含"作者"
const all = document.querySelectorAll('*');
for (const el of all) {
  if (el.children.length === 0 && el.textContent.trim() === '回复') {
    let p = el.parentElement;
    let hasAuthor = false;
    for (let j = 0; j < 8; j++) {
      if (!p) break;
      if ((p.textContent || '').includes('作者')) { hasAuthor = true; break; }
      p = p.parentElement;
    }
    if (!hasAuthor) {
      // 这是未回复的评论,可以回复
    }
  }
}

5. 点击「回复」按钮

用 evaluate 直接点击:

// 找到目标用户评论下的「回复」按钮
const clicked = await page.evaluate((userName) => {
  const all = document.querySelectorAll('*');
  for (const el of all) {
    if (el.children.length === 0 && el.textContent.trim() === '回复') {
      let p = el.parentElement;
      for (let j = 0; j < 8; j++) {
        if (!p) break;
        if ((p.textContent || '').includes(userName) && !(p.textContent || '').includes('作者')) {
          el.scrollIntoView({ block: 'center' });
          el.click();
          return true;
        }
        p = p.parentElement;
      }
    }
  }
  return false;
}, '目标用户名');

6. 输入回复内容 ✅ 已验证

Draft.js 编辑器只能用 keyboard.type 逐字输入:

// 找到Draft.js编辑框
const editor = page.locator('.public-DraftEditor-content').first();
if (await editor.isVisible().catch(() => false)) {
  await editor.click();
  await new Promise(r => setTimeout(r, 300));
  // 用keyboard.type逐字输入(Delay模拟真人打字)
  await page.keyboard.type('回复内容', { delay: 15 });
  await new Promise(r => setTimeout(r, 500));
  // Enter发送
  await page.keyboard.press('Enter');
  await new Promise(r => setTimeout(r, 3000));
}

> 已验证: document.execCommand('insertText') 对 Draft.js 不生效(编辑器不识别)。只能用 keyboard.type

7. 验证发送成功

发送成功后,页面会出现 小小程序猿 作者 + 刚发的回复内容。


三、回复内容规范 ⚠️ 核心防检测

禁止行为

禁止原因
:---::------
每条回复句式相同被检测为批量自动化
连续快速发送每回复1条间隔至少2-3秒
太官方/太AI感"让我们一起…""在这个世界上…""替它们谢谢你🙏"
每条都带🙏🐾表情显得很模板化

✅ 正确做法:像真人一样说话

❌ 太官方:"谢谢你的关注🙏流浪的它们需要更多善良的人"
✅ 自然:"你也喜欢小动物呀,谢谢你的关注"

❌ 太官方:"感谢留言🐾愿每个小生命都能被善待"
✅ 自然:"看到这种场景真的挺揪心的,希望它们都好"

❌ 太官方:"替流浪的毛孩子谢谢你!希望它们都能找到家🙏"
✅ 自然:"你的名字好可爱!替它们谢谢你啦"

关键原则:

  • 想象是在跟朋友聊天,不是在做客服
  • 每条回复都不一样,长短、语气、角度都要变
  • 少用表情符号,用了也不要每个都一样
  • 可以稍微调侃、可以简短、可以有个人风格
  • 实在没话说就简单一句"谢谢"也比模板强

回复风格示例

评论者特点回复示例
:----------:---------
名字有趣的"哈哈哈你这名字" / "名字好可爱"
评论有内容的针对内容回(如"立法保护动物"→"说的对,确实该立法了")
评论为空/表情简单回一句"谢谢支持" / "感谢关注"
明显很走心的认真回一两句,不要敷衍

回复间隔

⏱ 点「回复」→ 等1-2秒
⏱ keyboard.type 输入 → 0.5秒
⏱ Enter发送 → 等2-3秒
⏱ 下一条 → 等1-2秒
⏱ 每5条休息5-10秒

四、模式B:从创作者中心回复(备选)

入口:https://creator.douyin.com/creator-micro/interactive/comment


五、踩坑记录(2026-06-01 更新)

评论区加载(新增)

问题表现根因修复
:----:----:----:----
评论加载不出来翻到底还是只有5条评论window.scrollBy 无效必须用容器 container.scrollTop += 80
容器选择器找不到正确的滚动元素页面结构有多个可滚动容器.parent-route-container[class*="route-scroll"]
刷到底了还在转"加载中"一直显示已到懒加载上限检查页面是否有"暂时没有更多评论"

回复操作(更新)

问题表现根因修复
:----:----:----:----
execCommand无效文字没输入Draft.js不识别execCommand只能用 keyboard.type
回复太官方读者觉得是机器人模板化回复每条都不一样,像真人聊天
找不到回复按钮回复按钮在视口外没先滚到评论位置el.scrollIntoView({block:'center'})

六、使用的工具

  • Playwright CDP:连接 OpenClaw Chrome 浏览器操作
  • page.evaluate:执行所有DOM操作(最稳定)
  • page.keyboard.type:Draft.js 编辑器输入(唯一有效方式)
  • page.locator:定位编辑器元素

七、首次执行检查清单

  • [ ] 抖音已在浏览器中登录
  • [ ] 已知自己的作品URL(/video/{id}/article/{id}
  • [ ] 能正确找到评论区滚动容器
  • [ ] 了解"作者"标记的判断方式
  • [ ] 每条回复都不一样,口语化
  • [ ] 用慢速操作,避免触发风控

版本历史

共 4 个版本

  • v3.1.0 v3.1 修复评论区滚动方式、确认Draft.js输入法、强调自然口语化回复 当前
    2026-06-01 14:37 安全 安全
  • v3.0.0 Initial release
    2026-05-18 15:29 安全 安全
  • v2.0.0 v2.0.0: 全面重构评论回复流程。修复回复内容填写方式(用execCommand insertText替代innerHTML),新增contenteditable操作规则说明,补充身份验证弹窗处理流程,完善回复误发独立评论的处置方法
    2026-05-12 10:56 安全 安全
  • v1.0.0 首个版本,支持抖音自动回复评论
    2026-05-11 14:59 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

京东数据采集

user_f4e1eca6
使用浏览器自动化从京东搜索页采集商品数据,支持多页翻页、懒加载滚动、导出 CSV
★ 1 📥 199

抖音全类型自动发布

user_f4e1eca6
抖音全类型作品自动发布——文章、图文、视频三种类型,支持AI封面、话题添加、背景音乐、自主声明、定时发布。基于多轮真实测试验证通过。
★ 1 📥 187

抖音关注私信助手

user_f4e1eca6
抖音评论区关注私信助手——从作品评论区提取评论用户,进入个人主页点击关注,发送私信打招呼。自动识别已关注/未关注状态,逐条处理。
★ 0 📥 38