解放双手,python实现自动刷抖音短视频

时间:2022-01-18 00:59:57

✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。

????个人主页:算法工程师的学习日志

抖音相信大家都玩过,母上大人也沉迷其中,她玩的是抖音短视频,每天看几分钟有点金币兑换钱,看着她每天刷来刷去就想着这个是否可以实现自动刷抖音了,故研究了一下安卓的adb功能正好可以模拟人手来实现自动的刷手机,类似之前的电脑端的pyautogui功能,故分享这个文章。

1、ADB

ADB 全称 Android Debug Bridge,译作Android 调试桥。ADB是一种功能多样的命令行工具,可与设备进行通信。ADB 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,对我们以后进行安卓开发与设备系统安装方面有极大的用处。adb是谷歌用来安卓机器debug的一个工具,下载链接:http://adbdownload.com/

adb下载之后需要添加到对应的环境变量,执行命令能看到这个就行,

解放双手,python实现自动刷抖音短视频

在实际运用中,我把adb.exe是放在了项目的目录下面,

解放双手,python实现自动刷抖音短视频

常用的adb命令有:

- 模拟点击事件
adb shell input tap x坐标 y坐标
adb shell input tap 528 1539


- 输入文本
首先需要把光标移到输入框,然后执行以下命令
adb shell input text zengzengzeng


- 模拟滑动事件
adb shell swip <起点x> <起点y> <终点x> <终点y> <滑动时长>
adb shell input swipe 528 1539 528 1300 2000
2000为滑动时间,单位是毫秒


- 返回键
adb shell input keyevent 4


- 返回home键(置应用于后台)
adb shell input keyevent 3


- 音量放大
adb shell input keyevent 24


- 音量缩小
adb shell input keyevent 25

在我的这个场景里面就需要一个简单的命令就可以,就是视频上下滑动

adb shell input touchscreen swipe x1 y1 x2 y2


touchscreen – 触摸屏幕,
swipe – 滑动、滑屏操作
x1 y1 x2 y2 – 滑动起始和终止位置的横纵轴坐标,举例如下:
adb shell input touchscreen swipe 450 66 110 66


2、python代码实现

代码的基本思路就是:

先获取到对应的手机信息,获取宽和高,然后根据宽和高通过上面提到的视频上下滑动命令进行视频自动翻页,然后翻页间隔一定的时间,避免视频后台判断作弊

import time
import os
import random




def rand(x0, x1): # 在x0 x1范围内生成随机两位小数
a = random.uniform(x0, x1)
return round(a, 2)




def randint(x0, x1): # 在x0 x1范围内生成随机整数
return random.randint(x0, x1)




# 屏幕向上滑动,随机防封
def swipeUp(screensize):
adb_path = os.path.join('Tools', "adb", 'adb.exe')
cmd = '{adb} shell input touchscreen swipe {x1} {y1} {x1} {y2}'.format(
adb=adb_path,
x1=int(int(screensize[0]) * rand(0.4, 0.5)), # x坐标
y1=int(int(screensize[1]) * rand(0.4, 0.5)), # 起始y坐标
y2=int(int(screensize[1]) * rand(0.7, 0.8)) # 终点y坐标
)
print(cmd)
os.system(cmd)




def short_video(): # 无限循环看视频
adb_path = os.path.join('Tools', "adb", 'adb.exe')
screensize = os.popen(adb_path + ' shell wm size')
output = screensize.read()
screensize = output.replace('\n', '')
screensize = screensize.split(' ')[2]
screensize = screensize.split('x')
print("屏幕宽度 %s" % screensize[0])
print("屏幕高度 %s" % screensize[1])
print("进入循环操作...")
while True:
t4 = randint(1, 6) # 随机看视频时间,防封
print('等待' + str(t4) + '秒进入下一个视频')
time.sleep(t4)
swipeUp(screensize)


short_video()

解放双手,python实现自动刷抖音短视频


需要完整的代码和adb工具的后台回复:刷抖音,获取下载链接