uiautomator2安卓自动化 批量喜欢、评论抖音快手视频

源代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

# -*- coding: utf-8 -*-
import uiautomator2 as u2
import time
import random
import logging

#python -m uiautomator2 init 代码运行前需要初始化,cmd中执行该命令,结束后需要关闭服务看下面的注释
'''
功能:
PC端运行代码,自动化操控安卓手机,批量喜欢、评论抖音视频
代码主要是练习分享uiautomator2的使用,其实最开始是为了每天批量签到获得积分的(如果你用几十个号需要签到手点是很痛苦的),
编写了签到的代码,但是因为违规删帖了。

原理:
uiautomator2 实现手机的自动化调试,网上一大堆教程。
代码会先点击喜欢按纽,然后点击评论,激活评论输入框后,随机输入textlist列表中的评论语并发送
返回到视频播放页,下滑进行下一个视频操作

准备:
1. python安装uiautomator2、random:
pip3 install --pre -U uiautomator2 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install random keyboard -i https://pypi.tuna.tsinghua.edu.cn/simple
2.安卓手机数据线连接电脑(传输文件,需非充电),并打开开发者选项中的usb调试、use模拟点击(小米,否则报32001 Jsonrpc error)
cmd中运行:python -m uiautomator2 init 成功初始化后,手动点开抖音,
修改下面的textlist评论语列表,如果你只是批量喜欢而不需要评论,修改71行为like(d,0),运行代码
中途不想运行了,按ctrl+c中止,用完了之后,手机上ATX软件>停止ATXAGENT 停止UIATOMTOR 或者取消注释最后一行代码

提示:
pip3 install -U appinspector UI查看器,weditor的新版本,
代码是在armV8 荣耀20上测试的,如果你发现代码无效,学习uiautomator2,需要用动appinspector,修改相关按纽的xpath
'''

def like(d,type):
try:
like = d.xpath("%点赞%")
like.click()
time.sleep(2)
if type == 1:
talk(d,textlist)
except Exception as e:
print(e)
pass

def talk(d,textlist):
try:
d.xpath('评论%').click() #点击评论
time.sleep(3)
#d.press("enter") #会出错
#d.click(320, 2135) #评论输入框的图标,激活评论框的另一种方法
d.xpath("//android.widget.EditText").click() #点击并激活评论框
time.sleep(1)
text1 = random.choice(textlist).strip('\n')
d(focused=True).set_text(text1)
time.sleep(1)
d.xpath('发送').click()
time.sleep(1)
d.press("back")
except Exception:
input('评论出错,请手动评论返回到视频播放页:')

textlist = ['太好了','喜欢','开心']

if __name__ == '__main__':
d = u2.connect() # connect to device
d.xpath.logger.setLevel(logging.DEBUG) #默认是logging.INFO
#d.app_start('com.ss.android.ugc.aweme')
time.sleep(1)
while True:
try:
like(d,1) #like(d,1) 喜欢并评论 like(d,0) 只喜欢不评论
d.swipe_ext("up",scale=0.9)
time.sleep(3)
except KeyboardInterrupt:
break
print('你已手动停止,程序结束')
#d.service("uiautomator").stop() #停止ATXAGENT 停止UIATOMTOR,代码再次运行需要重新init