三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

意外的好处-----opencv可以用来识别抖音的评论区图标

意外的好处-----opencv可以用来识别抖音的评论区图标

这是我一开始没有考虑到的,还有这个好处

------------------------------------------------------------------------

我直接给你讲透市面上主流自动化脚本的 3 种核心方案,以及它们在抖音 / 短视频场景的优缺点、适用场景和行业真实使用情况,你就能直接判断哪种最适合你。


一、方案总览(行业真实使用比例)

表格

方案核心原理适用场景行业使用比例你的适配度
无障碍节点识别AccessibilityService 找文本 / ID / 控件,直接点击界面稳定、控件固定的 App40%高(你现在在用)
固定坐标点击直接写死(x,y)坐标手势界面布局固定、不常改版的 App30%中(抖音布局稳定,可凑合用)
OpenCV 图像识别(模板匹配 / 特征点)截图 → 模板匹配 / 特征点匹配 → 找坐标 → 手势点击控件不稳定、文本变化频繁、反爬严的 App30%极高(最稳、适配最强)

二、逐个拆解:脚本圈的真实玩法

1. 无障碍节点识别(你现在在用的)

核心逻辑: 利用 Android 的无障碍服务,通过节点的文本、ID、类名、描述,找到目标控件,直接调用系统的performAction(ACTION_CLICK),或者通过dispatchGesture点击。

优点

  • 速度最快(毫秒级),无需截图和图像处理
  • 适配性好,不同分辨率、不同手机都能用
  • 无需额外权限,只要无障碍服务开启即可

缺点(抖音场景致命)

  • 抖音会频繁修改控件结构、文字描述,比如评论按钮的文本会从 “评论” 变成数字(如 “26”),或 ID 变化,导致节点识别失效
  • 部分版本的抖音会对无障碍节点做混淆,控件层级复杂,遍历耗时
  • 遇到动态加载的控件(如评论数变化),容易找不到节点

真实行业情况: 早期抖音脚本大量使用这个方案,但随着抖音改版频繁,现在纯节点识别的脚本很容易失效,一般只作为辅助方案,配合其他方式使用。


2. 固定坐标点击(新手最常用)

核心逻辑: 直接在脚本里写死抖音评论按钮、点赞按钮的坐标,用dispatchGesture直接点击。

优点

  • 实现最简单,几行代码搞定,无需任何识别逻辑
  • 速度极快,无任何额外开销
  • 不受抖音文本 / 控件变化影响,只要布局不变就一直能用

缺点

  • 完全依赖分辨率,换手机、换抖音版本、布局微调就会错位失效
  • 不同手机的状态栏、导航栏高度不同,坐标偏移
  • 抖音偶尔会调整控件位置,比如评论按钮上下移动,就会点偏

真实行业情况: 很多新手脚本、单机单分辨率的脚本会用这个方案,适合自己用,不适合批量分发,或者配合分辨率自动适配(根据屏幕宽高计算相对坐标,如size.x * 0.9)使用。


3. OpenCV 图像识别(现在主流的 “稳脚本” 方案)

核心逻辑

  1. MediaProjection截取当前屏幕
  2. 用 OpenCV 对截图做模板匹配 / 特征点匹配,找到评论、点赞等按钮的位置
  3. 用无障碍服务的手势点击找到的坐标

优点(抖音场景碾压级优势)

  • 不依赖任何控件信息,抖音怎么改文本、ID、布局,只要按钮的图标不变,就能一直识别
  • 适配性极强,不同分辨率、不同手机,只要模板图适配,就能精准找到
  • 可以应对动态变化,比如评论数数字变化,但按钮图标不变,依然能识别
  • 防检测能力更强,比节点识别更难被系统判定为自动化操作

缺点

  • 实现成本稍高,需要额外集成 OpenCV,还要处理截图权限、模板图准备
  • 速度比前两种慢,一次匹配约 50-150ms,需要子线程处理,避免阻塞主线程
  • 需要准备模板图,且模板图要和目标按钮一致,否则匹配失败

真实行业情况: 现在市面上能长期稳定运行的抖音、快手自动化脚本,90% 以上都是用的这个方案,尤其是需要长期更新、适配多版本的脚本,都会把 OpenCV 作为核心识别方式,配合节点识别或坐标点击做辅助。

← 返回列表