Python自动化实现抖音自动刷视频
作者:鸢尾の 发布时间:2022-06-05 19:12:37
标签:Python,抖音,自动
环境准备
Python3.5以上
Appium Server服务器
Android SDK,需要用到adb服务
需要依赖Appium-Python-Client组件库
真机或者模拟器,推荐模拟器(真机一般安卓8版本以上了,appium对安卓8以上版本元素获取的兼容性不太好)
JDK8环境
实现
确保adb服务和appium服务及真机/模拟器正常打开,然后在真机/模拟器上将抖音打开。
确定需要的参数
参数基本上都是固定的,只需要确定抖音的包名和活动页即可。
adb shell dumpsys window | findstr mCurrentFocus获取到抖音的包名数据,最后代码里的参数:
desired_caps = {
"platformName": "Android", # 平台是安卓的
"deviceName": "127.0.0.1:62001", # 通过 adb devices命令获取
"appPackage": "com.ss.android.ugc.aweme", # 抖音包名
"appActivity": ".splash.SplashActivity", # 活动页
"platformVersion":"7.1" # 7.1.2
}
参数整完记得项目跑起来测试一下。
控制模拟器进入抖音后
我们需要去获取页面上的元素或坐标,来实现滑动视频等其他操作。
到我们的Android SDK的tools目录下使用uiautomatoviewer.bat取页面快照。
操作的过程其实相对简单,就是实现页面滑动即可;可能会遇到弹框、点击授权之类的,处理一下即可。然后还需要注意的就是元素的加载时间问题,尽量考虑好网络、设备等其他因素,将等待时间放长些。
# @creator by wlh
# @date 2023/3/15 19:43
import time
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
desired_caps = {
"platformName": "Android",
"deviceName": "127.0.0.1:62001", # 通过 adb devices命令获取
"appPackage": "com.ss.android.ugc.aweme",
"appActivity": ".splash.SplashActivity",
"platformVersion": "7.1" # 7.1.2
}
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities=desired_caps)
driver.implicitly_wait(20) # 等待弹框元素
driver.find_element(By.XPATH, "//*[@text='同意']").click()
driver.implicitly_wait(20) # 等待弹框元素
driver.find_element(By.XPATH, "//*[@text='允许']").click()
time.sleep(1.5)
size = driver.get_window_size()
width, height = size['width'], size['height'] # 获取屏幕宽高
action = TouchAction(driver)
for i in range(5):
# 实现滑动
action.press(x=width / 2, y=height / 3 * 2).wait(500).move_to(x=width / 2, y=height / 3).release()
action.perform()
try:
# 3s后 弹框元素不出现,直接跳过继续执行
WebDriverWait(driver, 3).until(ec.presence_of_element_located((By.XPATH, "//*[@text='允许']")))
driver.find_element(By.XPATH, "//*[@text='允许']").click()
except:
pass
time.sleep(5)
driver.close_app()
driver.quit()
来源:https://blog.csdn.net/weixin_45248492/article/details/129584410


猜你喜欢
- 前言使用面向对象编程思想完成学员管理系统的开发,具体如下:系统要求:使用面向对象的方法系统功能:添加学员、删除学员、修改学员信息、查询学员信
- 检测自己当前系统环境中python是否已经安装该module,若未安装请自行安装检测自己的pycharm使用的环境变量是否与当前环境一致若不
- 本文实例讲述了Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法。分享给大家供大家参考。具体如下:这个东东本来是做来给公司数据
- 可以使用 Application 对象在给定的应用程序的所有用户之间共享信息。基于 ASP 的应用程序同所有的 .asp 文件一样在一个虚拟
- 一、生成随机的测验试卷文件假如你是一位地理老师, 班上有 35 名学生, 你希望进行美国各州首府的一个小测验。不妙的是,班里有几个坏蛋, 你
- 当前的调试部分可以使用 go run filename.go 来执行。可以生成一个 build.sh 脚本,用于在指定位置产生已编译好的 可
- import requestsimport reimport jsonimport ossession = requests.session
- 什么是Three.js? 如果你正在读这篇文章,你可能对Three.js有一定的了解,那我们来简单地介绍下Three.js是什么.Three
- js实现点击掉落特效 先看看效果图 话不多说代码<!DOCTYPE HTML><html><head
- XPath 的安装以及使用1 . XPath 的介绍刚学过正则表达式,用的正顺手,现在就把正则表达式替换掉,使用 XPath,有人表示这太坑
- JS高级 一、JS的数据类型 1.基本类型 JS共有5大基本类型,分别是: 1)Undefined。他只有一个值:undefined。如果一
- 1、Python调用Windows命令打印文件Windows命令行打印文件使用print 命令,具体用法可使用help print查看。下面
- 在使用Sublime Text3 的时候导numpy的包发现报错,找不到这个包,这是因为要配置pip源才能正常导包,进行from numpy
- 这篇文章主要介绍了python主线程与子线程的结束顺序实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 问:如何在SQL Enterprise Manager version 6.5下操作SQL Server 6.0的服务器?答:在使用SQL
- 1.padx表示在x轴方向上的边距一般用法是padx=10,表示距离左右两边组件的长度都为10还可以这么用,padx=(20,10),表示距
- 目录1.数组重塑1.1 一维数组重塑1.2 多维数组重塑2.数组转置1.数组重塑所谓数组重塑就是更改数组的形状。比如将原来3行4列的数组重塑
- 在这系列视觉设计的文章间隙插一篇字体单位的文章。前文说了,字体单位应该用em而不用px,原因简单来说就是支持IE6下的字体缩放,在页面中按c
- 本文系统的对HTTP Headers进行了简明易懂的阐述,我仅稍作笔记。什么是HTTP HeadersHTTP是“Hypertext Tra
- Pygame的Draw绘图Pygame 中提供了一个draw模块用来绘制一些简单的图形状,比如矩形、多边形、圆形、直线、弧线等。pygame