Python自动化抖音自动刷视频
创始人
2025-05-29 02:56:35

环境准备

  • 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 timefrom 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 ecdesired_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:passtime.sleep(5)
driver.close_app()
driver.quit()

相关内容

热门资讯

从家常菜看美食文化,感受地方特... 琢磨美食文化,常常易于掉进对“色香味”这般浅显夸赞里,又或者是对各处菜系进行粗略排列。而实际的美食文...
文旅融合双向发力 文化强区增添... “十四五”时期,华州区聚焦文旅深度融合,通过硬件升级与文化赋能双向发力,推动区域文旅产业提质增效,走...
原创 广... 看完两场广东队的比赛,内线的护框问题确实太大了。数据看广东两场比赛篮板球并没有输,但是对手能够在广东...
原创 王... 12日至16日,中共中央政治局委员、外交部长王毅应邀访问阿联酋、沙特和约旦。这次行程是继王毅访问非洲...
快看数据|你尝试过哪些“工位养... 你是不是一上班就犯困、脖子僵、腰酸背疼?今天教你几个在工位就能做的“轻养生法”!中国青年报社社会调查...