首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >解放双手,python实现自动刷抖音短视频

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

作者头像
用户9925864
发布于 2022-12-16 14:15:21
发布于 2022-12-16 14:15:21
3.1K0
举报

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

1、ADB

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

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

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

常用的adb命令有:

代码语言:javascript
复制
- 模拟点击事件
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

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

代码语言:javascript
复制
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代码实现

代码的基本思路就是:

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

代码语言:javascript
复制
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()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档