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
}
1
2
3
4
5
6
7
'
运行运行
参数整完记得项目跑起来测试一下。

控制模拟器进入抖音后

我们需要去获取页面上的元素或坐标,来实现滑动视频等其他操作。

到我们的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()

————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.youkuaiyun.com/weixin_45248492/article/details/129584410

### 使用 Python 实现快手的自动化交互或数据分析 #### 自动化交互 对于和快手这类应用,实现自动化交互主要依赖于模拟用户行为的技术栈。Selenium 是一个常用的工具库,可以用于浏览器自动化测试,也可以用来模拟用户的浏览、点击等操作。 ```python from selenium import webdriver import time driver = webdriver.Chrome() # 或者其他支持的浏览器驱动 try: driver.get('https://www.douyin.com/') # 替换成目标网站URL element = driver.find_element_by_id('some-id') # 查找页面上的某个元素 element.click() # 执行点击动作 finally: time.sleep(5) # 延迟关闭窗口以便观察效果 driver.quit() ``` 需要注意的是,在实际部署时应遵循各平台的服务条款,避免违反规定的行为[^1]。 #### 数据分析 针对和快手的大规模数据分析工作,则更多涉及到后台数据抓取以及后续的数据清洗、转换、加载(ETL)、建模等工作流程。考虑到隐私保护法规和个人信息安全的要求,这里仅讨论合法合规的方法: - **API 接口**:如果官方提供了开放接口服务,可以通过调用 API 获取公开发布的视频信息、作者资料等内容; - **Web Scraping**:当缺乏正式渠道时,可采用网页爬虫技术收集公开可见的信息片段。BeautifulSoup 和 Scrapy 是两个广泛使用的 Python 库; - **日志文件解析**:对于内部开发者而言,还可以基于服务器端的日志记录来进行更深入的研究。 一旦获得了所需的数据集之后,便可以根据具体研究目的选用合适算法框架来挖掘价值所在——比如通过机器学习预测流行趋势或是评估营销活动成效等等[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值