网站客服:zx81024163 |

手把手教你编写抖音自动评论脚本

2023-06-18 10:02:00发布    浏览1097次    信息编号:59493

友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。

手把手教你编写抖音自动评论脚本

0×00 前言

2019年3月11日18:44,我添加了一个条目,| 抖音自动评论,创意评论(全部评论/前100条评论男女比例|全部评论词云),记录了当时的一个想法。 两者都可以用于移动端的自动化测试。 它属于网易。 我想做一个评论词云是因为我写了一个程序来爬取我的朋友圈的词云图(见图1)。 同时,操作更简单,考虑范围也更广。

后来一直没有实施。 主要是手机必须连接电脑,不能随时随地操作,所以就搁置了。 最近因为工作中的一个想法,又把这件事提出来了。 业务场景比较特殊,可能涉及版权问题,就不细说了。 总之就是想实现注册机自动生成注册码的功能,然后接触到了按键精灵。 按键精灵由来已久,早有耳闻,但一直没有接触过,所以也正好借此机会接触一下。 使用按键精灵PC版实现注册机自动生成注册码功能,在实现的过程中,接触到了按键精灵手机版。 评论功能。

前言有点啰嗦。 . . ,这里,这是微信朋友圈的词云图,图1

最重要的是这里,演示视频:

0×01 简介

前言之后是介绍,看完这篇文章你能学到什么:

1.注册机自动生成注册码——密钥精灵PC版脚本编写

2.抖音自动评论-按钮精灵手机版的使用及脚本编写

3. Lua插件的使用与编写

4.扩展功能,见文末Tips

5.非技术人员也能看懂,很多功能没那么复杂,程序可以代替人工

6.++

0×02 注册机自动生成注册码

不是本文的重点,只是简单总结一下(郭)。 按键精灵官网下载地址,可以下载按键精灵PC版、安卓版、按键精灵手机助手。

此处下载安装按键精灵PC端,PC版首页:

脚本编写界面(需要注意红色箭头所指的几个地方,了解相关功能项):

学习方法: Genie使用的是Q语言,是在Q语言的基础上开发的。 如果你对语言有更好的理解,即使你不理解也没关系。 注意上面显示的脚本界面中的基本命令和所有命令标签。 标签可以通过点击自动生成代码,所有命令标签的大部分方法也可以通过代入参数自动生成代码。 阅读基本命令和所有与命令相关的方法,在阅读过程中就会对要实现的功能有个大概的了解,知道会用到哪些方法,然后再去官网等地方在脚本编写过程中学习相关知识点,基本就可以上手了。

小Tips:

1.界面标签页可以写一个窗体界面,包括各种控件。

2、发布菜单可以导出脚本,具体取决于PC版的运行环境; 可创建按键精灵,生成exe程序,脱离PC版运行环境独立运行。

3、善用命令帮助文档和命令搜索功能

注册机自动生成注册码,主要使用窗口插件中的方法,也使用抓取功能,通过动态查找窗口句柄实现特定功能。 ..( )函数有坑,需要多练 了解参数2子窗口句柄的用法。 如有其他未介绍的问题,欢迎交流。

注册机自动生成注册码的代码示例(如有更好的实现方法,欢迎指导,谢谢):

Dim MachineCode, SerialNum, RegistCode
//打开注册机
Call RunApp("D:\SoftWare\keygen.exe")
Delay 500
//接收机器码
Rem InputMach
MachineCode = InputBox("请输入机器码:", "输入注册码")
If MachineCode = "" Then
Goto InputMach
End If
TracePrint "MachineCode: " & MachineCode
//查找窗口类名("#32770")或者标题("Keymaker"),返回找到的句柄Hwnd
Hwnd = Plugin.Window.Find("#32770", "Keymaker")
//根据父窗口句柄(Hwnd)查找子窗口匹配类名("Edit")或者匹配标题(""),返回找到匹配的句柄MachineIdEx
MachineIdEx = Plugin.Window.FindEx(Hwnd, 0, "Edit", 0)
TracePrint "MachineIdEx: " & MachineIdEx
//修改Keymaker标题
Call Plugin.Window.SetText(Hwnd,"注册码自动生成")
//自动输入机器码
Call Plugin.Window.SendString(MachineIdEx, MachineCode)
//根据父窗口句柄(Hwnd)查找子窗口匹配类名("Button")或者匹配标题("&Generate"),返回找到匹配的句柄GenerateEx
GenerateEx = Plugin.Window.FindEx(Hwnd, 0, "Button", "&Generate")
TracePrint "GenerateEx: " & GenerateEx
//按下Generate按钮,生成注册码
Call Plugin.Window.SendKeyDown(GenerateEx, 13)
//根据父窗口句柄(Hwnd)查找子窗口匹配类名("Static")或者匹配标题("Your machine ID:"),返回找到匹配的句柄MachineIdLabelEx
MachineIdLabelEx = Plugin.Window.FindEx(Hwnd, 0, "Static", "Your machine ID:")
TracePrint "MachineIdLabelEx: " & MachineIdLabelEx
//根据父窗口句柄(Hwnd)查找子窗口匹配类名("Edit")或者匹配标题(""),返回找到匹配的句柄SerialNumEx
SerialNumEx = Plugin.Window.FindEx(Hwnd, MachineIdLabelEx, "Edit", 0)
TracePrint "SerialNumEx: " & SerialNumEx
//获取序列号
SerialNum = Plugin.Window.GetTextEx(SerialNumEx, 1)
TracePrint "SerialNum: " & SerialNum
//根据父窗口句柄(Hwnd)查找子窗口匹配类名("Button")或者匹配标题(""),返回找到匹配的句柄ButtonFrameEx
ButtonFrameEx = Plugin.Window.FindEx(Hwnd, 0, "Button", 0)
TracePrint "ButtonFrameEx: " & ButtonFrameEx
//根据父窗口句柄(Hwnd)查找子窗口匹配类名("Edit")或者匹配标题(""),返回找到匹配的句柄RegistCodeEx
RegistCodeEx = Plugin.Window.FindEx(Hwnd, ButtonFrameEx, "Edit", 0)
TracePrint "RegistCodeEx: " & RegistCodeEx
RegistCode = Plugin.Window.GetTextEx(RegistCodeEx, 1)
TracePrint "RegistCode: " & RegistCode
MsgBox "序列号:" & SerialNum & " 注册码:" & RegistCode
//复制序列号和注册码到剪切板
Call Plugin.Sys.SetCLB("机器码:" & MachineCode & " 序列号:" & SerialNum & " 注册码:" & RegistCode)
MsgBox "注册码信息已复制到剪切板"
Delay 1000
//完全关闭窗口(退出程序)
Call Plugin.Window.CloseEx(Hwnd)

首次运行示例:

0×03抖音自动评论——古诗词版

顾名思义,评论的内容是古诗词版,为啥,我是文学社社长[/ funny face],首先想到的是一些明文版的。 演示视频用的是搜狗输入法小网版,评论内容更丰富,嗯。

首先下载并安装上述按钮精灵手机助手,点击黑板,手机助手编写的脚本在安卓手机和苹果手机上都可以使用。 前提是安卓需要ROOT,苹果需要越狱。 脚本中可能会有一些差异,具体要看两端是否支持具体的方法,支持的比较全面。

本文演示的手机是苹果越狱机,型号:6S Plus,安卓手机,需要大家自行尝试。

除了在电脑上安装按键精灵手机助手,还需要在苹果越狱机上安装按键精灵越狱插件,按键精灵Cydia官方源地址:在Cydia中添加按键精灵官方源后,安装相应的按钮精灵根据对应的iOS系统版本:

之后手机通过数据线连接电脑,打开按键精灵手机助手,就可以连接手机写脚本了。

手机助手脚本接口(需要注意红色箭头所指的地方,了解相关功能项):

按键精灵手机助手学习方法:与PC版类似,先熟悉界面、菜单功能项、手机助手操作方法、移动端按键精灵操作方法,最重要的是熟悉基本命令和所有的命令,全部看完之后,就可以对自己需要实现的功能有个大概的了解,会用到哪些命令方法就一目了然了。

抖音自动评论脚本编写思路(过程):

1.按Home键,然后自动打开抖音App

基本命令——触摸命令——Home键——插入,可以生成按下Home键的代码,

基本命令-其他命令-应用启动-包名找到抖音,即可生成打开抖音App的代码

如下(注意延时2秒防止闪退,实践学习):

//按下Home键
KeyPress "Home"
//延时2秒,防止RunApp闪退
Delay 2000
//打开抖音
RunApp "com.ss.iphone.ugc.Aweme"

2.模拟向上滑动切换视频,随机延时模拟人看视频

基本命令-从屏幕x1,y1坐标滑动到x2,y2坐标,可以通过两组坐标模拟某个方向的滑动操作,坐标点需要根据屏幕分辨率计算,两组坐标有同样是x轴,而y轴从小到大就是滑动操作。

基本命令-设备命令-获取屏幕宽度,获取屏幕高度,可以获取屏幕分辨率,宽×高,

基本命令-其他命令-延迟x毫秒,可以延迟执行,随机延迟需要计算实现

整理代码如下(方法,控制台调试输出):

//获取屏幕分辨率
Dim screenX, screenY
screenX = GetscreenX()
screenY = GetscreenY()

//生成指定范围随机数
Function GenRnd(minVal, maxVal)
GenRnd = Int((maxVal - minVal + 1) * Rnd() + minVal)
End Function

//随机延时
Function DelayRnd(minSec, maxSec)
Dim randTime
randTime = GenRnd(minSec, maxSec)
TracePrint "随机延时" & randTime & "秒"
Delay randTime * 1000
End Function

//上划切换视频
Function SwipeUp(screenX, screenY)
    //整除运算符计算从屏幕中间底部划到顶部,划动延时为30毫秒
Swipe screenX \ 2, screenY * 0.65 \ 1, screenX \ 2, screenY * 0.35 \ 1, 30
//调试输出结果,例:621 1766 621 442 30
TracePrint(screenX \ 2, screenY * 0.8 \ 1, screenX \ 2, screenY * 0.2 \ 1, 30)
//随机延时3到15秒
DelayRnd(3, 15)
End Function

3.找到评论按钮,点击评论按钮

要找到评论按钮,您需要使用抓取菜单找到评论按钮在屏幕上的坐标:

首先点击左上角截图加载当前抖音视频截图,滑动滚轮找到评论按钮,鼠标放在中心点,显示的坐标点就是评论按钮的坐标点.

问题:还有不依赖坐标点的方法吗? 是的,要了解图片搜索功能,需要截取评论按钮的图标,放在附件中,通过代码搜索评论按钮截图在当前屏幕的位置。

基本命令——短按屏幕——输入x、y坐标点,可以点击屏幕上的某个坐标

整理代码:

//查找并点击评论按钮坐标,暂定1150×1440
Tap 1150, 1440

单击评论按钮后的示例:

4.点击左下角评论输入框,调整界面获取评论内容,自动输入评论内容,点击发送按钮

4-1。 根据上面找到评论按钮的方法,找到评论输入框的大概坐标区域,因为是在屏幕底部的左边区域(见上图红圈),所以近似坐标点由屏幕高度计算:

//点击评论框
Tap 80, screenY - 80

评论框展开示例(红圈区域为评论内容输入区域,已自动获得焦点):

4-2. 调用接口获取评论内容。 这里需要使用Get或者Post方法请求接口获取返回的数据。 所有命令——url网络操作——通过Get|Post获取地址,可以满足常见的不必要的接口。 ,需要携带请参考:所有命令-插件命令-山海插件命令v2.5-Get|Post访问HTTP资源(内含),或其他插件。

这里我找到了一个古诗词界面,你可以随时通过访问返回一行古诗词,例如:

document.write("往者不可谏,来者犹可追。——《论语·微子》");

使用js代码,需要提取文本部分,有两种方法,使用正则提取,或者使用字符串替换,替换.write(" and "); 清空。

调用接口示例:

Dim html, content
// 返回结果示例:document.write("居安思危,思则有备,有备无患。——《左传》");
html = URL.Get("https://api.77sec.cn/yiyan/api.php")
TracePrint html

使用字符串替换提取古诗词内容:

content = Replace(html, "document.write(""", "")
content = Replace(content, """);", "")

使用正则抽取,需要注意这个地方,可以了解Lua插件的使用,Lua插件正则和普通正则的区别,Lua插件的写法等等。

普通正则提取文本:

/\("(.+?)"\)/g

使用山海插件命令v2.5-全局正则匹配提取:

//引用插件,按键精灵手机助手自带,对应目录"按键精灵\按键精灵手机助手\Plugin\ShanHai.lua"
Import "shanhai.lua"

Dim regexArr = shanhai.RegexFind(html,"%(\"(.+)\"%)")
For Each v In regexArr
content = v
Next
TracePrint content

一开始以为.( ) 正则参数可以传入一个普通的正则表达式,但是调试无果。 然后看了.lua插件的源码,发现需要用到lua正则表达式。 然后我学会了如何写表达式。 参考lua进阶-正则表达式。

小提示:如果是自己写的插件,如何在脚本代码中引用呢? PC端和移动端放在对应的目录下,引用即可。

4-3。 自动输入评论内容。 根据4-1中的注释框展开红圈区域。 焦点已自动获得。 使用 ( ) 方法自动输入评论内容:

//输入评论内容
InputText content

4-4。 单击发送按钮。 这里使用的是搜狗输入法。 发送按钮在右下角。 可以通过屏幕分辨率计算坐标,也可以使用抓取功能获取中心坐标点。 这里的坐标暂定为1107×2125:

//点击搜狗输入法发送按钮,坐标暂定1107×2125
Tap 1107, 2125

5.关闭屏幕区域进行下一步操作

关闭的方法有两种,第一种是点击屏幕区域右上角的×号,第二种是点击评论区和屏幕顶部之间的空格(会延迟通知消息,不推荐)

//关闭评论,点击评论区右上角×号,坐标暂定1169×655
Tap 1169, 655
或
//关闭评论,点屏幕上顶部即可
Tap screenX \ 2, screenY * 0.1 \ 1

经过以上操作,即可完成抖音短视频自动评论功能。 运行的每一步都可以在手机上点击调试菜单运行调试。 剩下的就是执行循环操作。

0×04 按键精灵越狱插件的使用

按键精灵手机助手每次预览界面、调试运行脚本时,都会自动将界面和代码同步到手机端的按键按键APP中。 默认情况下,它位于底部脚本 - 未分类文件夹中。 打开后可以看到手机助手写的脚本:

点击脚本进入脚本配置界面:

脚本名称和指令可以在手机助手-脚本-脚本属性里设置,我的很简单,指令就一句话,“好用,打开手机别碰就行了”。

脚本设置相关的配置项需要通过手机助手-界面进行设计,配置项变量可以在代码中通过(界面配置项名称,默认值)获取。

手机助手界面(见上图预览效果):

获取评论数配置项的代码示例:

Dim commentTimes
commentTimes = CInt(ReadUIConfig("commentTimes", 10)) //CInt() 尝试将表达式转换为短整数型,如未取到值,默认10次

设置完成后,点击加载按钮运行脚本。 控制方式有两种,一种是按键精灵悬浮图标控制,另一种是音量加减控制,加为运行,减为停止运行,可在按键精灵App设置菜单中设置。

脚本配置界面图例右上角的编辑按钮可以在手机端查看脚本内容,并可以实时修改、保存运行,然后独立运行。

0×05抖音自动评论——古诗词版脚本源码

源码中还有很多地方上面没有提到,包括不限于基本语法、循环操作、封装方式等,可以通过代码注释了解。

//导入ShanHai 山海插件命令v2.5插件
Import "shanhai.lua"
//获取屏幕分辨率
Dim screenX, screenY
screenX = GetscreenX()
screenY = GetscreenY()
//调试输出结果,例:1242×2208
TracePrint "屏幕分辨率:" & screenX & "×" & screenY
//按下Home键
KeyPress "Home"
//延时2秒,防止RunApp闪退
Delay 2000
//打开抖音
ShowMsg "打开抖音", screenX, screenY

RunApp "com.ss.iphone.ugc.Aweme"
Delay 5000

//获取界面设置的评论次数
Dim content
Dim i, commentTimes
commentTimes = CInt(ReadUIConfig("commentTimes", 10)) //CInt() 尝试将表达式转换为短整数型
ShowMsg "评论次数配置为" & commentTimes & "次", screenX, screenY
For i = 1 To commentTimes
//上划切换视频
SwipeUp screenX, screenY
TracePrint "第" & i & "次评论"
ShowMsg "第" & i & "次评论", screenX, screenY

//获取评论内容
content = GetPoetry()
ShowMessage "评论内容:" & content, 2000, screenX * 0.05 \ 1, screenY * 0.75 \ 1
//自动评论
Comment screenX, screenY, content
Next


//--------------------------------------------------------------------------------------------
//上划切换视频
Function SwipeUp(screenX, screenY)
//整除运算符计算从屏幕中间底部划到顶部,划动延时为30毫秒
Swipe screenX \ 2, screenY * 0.65 \ 1, screenX \ 2, screenY * 0.35 \ 1, 30
//调试输出结果,例:621 1766 621 442 30
TracePrint(screenX \ 2, screenY * 0.8 \ 1, screenX \ 2, screenY * 0.2 \ 1, 30)
//随机延时3到15秒
DelayRnd(3, 15)
End Function

//自动评论
Function Comment(screenX, screenY, content)
//查找并点击评论按钮坐标,暂定1150×1440
Tap 1150, 1440
DelayRnd(3, 8)
//点击评论框
Tap 80, screenY - 80
//输入评论内容
InputText content
Delay 1000
//点击搜狗输入法发送按钮,坐标暂定1107×2125
Tap 1107, 2125
Delay 2000
//关闭评论,点屏幕上顶部即可
//Tap screenX \ 2, screenY * 0.1 \ 1
//关闭评论,点击评论区右上角×号,坐标暂定1169×655
Tap 1169, 655
Delay 1000
End Function

//获取一句随机古诗词作为评论内容
Function GetPoetry()
Dim html, content
// 返回结果示例:document.write("居安思危,思则有备,有备无患。——《左传》");
html = URL.Get("https://api.77sec.cn/yiyan/api.php")
TracePrint html
// content = Replace(html, "document.write(""", "")
// content = Replace(content, """);", "")
Dim regexArr = shanhai.RegexFind(html,"%(\"(.+)\"%)")
For Each v In regexArr
content = v
Next
TracePrint content
GetPoetry = content
End Function

//生成指定范围随机数
Function GenRnd(minVal, maxVal)
GenRnd = Int((maxVal - minVal + 1) * Rnd() + minVal)
End Function

//随机延时
Function DelayRnd(minSec, maxSec)
Dim randTime
randTime = GenRnd(minSec, maxSec)
TracePrint "随机延时" & randTime & "秒"
Delay randTime * 1000
End Function

//重写ShowMessage
Function ShowMsg(msg, screenX, screenY)
Dim intX, intY
intX = screenX \ 2 - 85
intY = screenY * 0.75 \ 1
TracePrint "提示消息坐标:" & intX & "×" & intY
ShowMessage msg, 2000, intX, intY
End Function

0×06 提示

OK,各位,相信经过上面文字和图片的炮轰(),大家应该可以开始使用按钮精灵做一些事情了。 当然,我所接触到的只是皮毛,学无止境。 当我有一个新的想法时,我可能会接触到更多的东西。 除了上面提到的抖音自动评论,你还能做什么? 我将简要列出一些项目,而不会详细说明。 如果你有这样的需求,很快就能想到。

1.手机版的按键精灵可以操作很多基本的功能,比如打电话,看书,发短信等等,所以脚本源码没问题,跟别人打包不一定安全别的。

2.可以批量添加、删除、清除联系人,具体用途自己想好

3.插件编写,看按键精灵自带的插件源码,可以编写自定义插件实现更强大的功能

4.还是++

0×07结语

做一个有态度的技术工作者。

祝大家2020年新年快乐,这可能是最早的新年祝福了。

提醒:请联系我时一定说明是从星空网上看到的!