使用冰狐js完成同城自动评论脚本
2026/6/10 1:32:23 网站建设 项目流程

最近想给本地业务做点同城流量,手动刷抖音评论太折磨人了,于是研究了一套自动化方案。

但是吧,手操这玩意挺麻烦的,研究了套脚本出来,只不过功能比较简单

只能检测是否在抖音然后打开评论区,然后发指定好的话术啥的。

一开始是想用 Auto.js 或按键精灵,但环境配置挺折腾。后来试了几个基于无障碍的 JS 框架,然后用冰狐的UI 编排还有原生 JS 执行的工具

至少界面挺简单的。调试成本低,适合快速迭代

这套脚本是我目前跑得比较稳的一个版本,核心逻辑是:

  1. 启动抖音 → 切到指定城市(比如武汉)

  2. 判断是否在「同城」feed

  3. 检测是否存在广告、是否有评论入口

  4. 满足条件后自动评论并返回

当然你有代码也能直接复制上去用。

function main() { console.log('脚本开始...'); // 1. 恢复之前的启动逻辑 // 等待抖音启动,条件可以是首页的“推荐”或“关注”,或者同城页的按钮 // 这里使用 'txt:推荐|txt:关注|txt:同城' 只要出现一个就算启动成功 var startRes = launchApp('com.ss.android.ugc.aweme', 'txt:推荐|txt:关注'); if (startRes == 1) { console.log('进入抖音成功'); // 2. 切换城市 var targetCity = "武汉"; console.log('准备切换城市至: ' + targetCity); changeCity(targetCity); // 3. 主循环 var index = 0; while (index < 20) { console.log('--- 第 ' + (index + 1) + ' 次循环 ---'); checkAndComment(); index++; // 随机休眠,模拟真人 sleep(parseInt(Math.random() * 2000 + 2000)); } console.log('任务结束'); } else { console.log('启动抖音失败'); } } // ================= 核心逻辑 ================= function checkAndComment() { // 条件1:检测广告 (id: qdk) var hasAd = findView('id:com.ss.android.ugc.aweme:id/qdk'); if (hasAd) { console.log('检测到广告 (qdk),跳过'); scrollVideo(); return; } // 条件2:检测是否在同城界面 (id: s71) // 如果 findView 报错或返回 null,说明不在同城 var isTongcheng = findView('id:com.ss.android.ugc.aweme:id/s71'); if (!isTongcheng) { // 备用方案:找文本 "同城发现" isTongcheng = findView('text:同城发现'); } if (!isTongcheng) { console.log('未在同城界面 (未找到 s71 或 同城发现)'); // 尝试点击底部“同城”Tab 回去 clickPoint(602, 344); // 点击您提供的同城发现坐标,或者底部的同城Tab sleep(2000); // 再次检测,如果还不行就下滑 if (!findView('id:com.ss.android.ugc.aweme:id/s71')) { scrollVideo(); return; } } // 条件3:检测评论区按钮 (id: ewd) var hasCommentBtn = findView('id:com.ss.android.ugc.aweme:id/ewd'); if (!hasCommentBtn) { console.log('未找到评论按钮 (ewd)'); scrollVideo(); return; } // 三者满足 console.log('条件满足!开始评论...'); doComment(); back(); sleep(1500); scrollVideo(); } // ================= 功能函数 ================= function changeCity(city) { console.log('执行城市切换...'); // 1. 点击城市按钮坐标 (832, 195) // 【修复】:使用 clickPoint 而不是 click,解决 id is null 报错 console.log('点击城市按钮坐标: 832, 195'); clickPoint(832, 195); sleep(2000); // 2. 点击搜索按钮 (id: xy9) var searchBtn = findView('id:com.ss.android.ugc.aweme:id/xy9'); if (searchBtn) { // 尝试点击找到的对象 // 如果对象不能直接点,用坐标。这里先尝试用 ID 点击 click('id:com.ss.android.ugc.aweme:id/xy9'); console.log('已点击搜索 (xy9)'); } else { console.log('未找到搜索按钮 (xy9)'); return; } sleep(1500); // 3. 输入城市名 var inputBox = findView('id:com.ss.android.ugc.aweme:id/et_search_kw'); if (inputBox) { click('id:com.ss.android.ugc.aweme:id/et_search_kw'); // 先点击聚焦 sleep(500); inputText(city); // 使用 inputText console.log('已输入: ' + city); } else { console.log('未找到输入框'); return; } sleep(1500); // 4. 选择搜索结果 var resultClicked = click('text:' + city); if (resultClicked) { console.log('已选择城市结果: ' + city); sleep(3000); } else { console.log('未找到结果,尝试点击搜索'); click('text:搜索'); sleep(3000); } } function doComment() { // 1. 点击评论区 (id: ewd) click('id:com.ss.android.ugc.aweme:id/ewd'); console.log('已点击评论区 (ewd)'); sleep(1500); // 2. 输入文本 (id: eoy) click('id:com.ss.android.ugc.aweme:id/eoy'); sleep(500); inputText('你好'); console.log('已输入评论'); sleep(1000); // 3. 点击发送 (id: es7) var sendSuccess = click('id:com.ss.android.ugc.aweme:id/es7'); if (!sendSuccess) { sendSuccess = click('text:发送'); } if (sendSuccess) { console.log('发送成功 (es7)'); } else { console.log('发送失败'); } sleep(2000); } function scrollVideo() { // 使用您成功的 scroll 示例 scroll('up', {distance: Math.random() * 0.5 + 0.45, duration: parseInt(Math.random() * 200 + 300), afterWait: 2000}); } main();

然后冰狐的模块化用ui开发功能的这个操作是确实方便好用

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询