appium自动化抓取某音视频数据

一.环境搭建
appium自动化抓取数据需要配置好相关环境,相关操作以后会发相关文章

二.导入相关模块appium,模块导入方式导入同selenium

# 导入appium模块包
from appium import webdriver
import time
import random

三.定义appium配置

# 定义配置字典
desired_caps = {
    # 配置系统
    "platformName": "Android",
    # 定义自动化引擎
    "automationName": "Appium",
    # 定义模拟器手机名字
    "deviceName": 'Android Emulator',
    # 系统版本
    "platformVersion": "7.1.2",
    # 运行软件包名
    "appPackage": "com.ss.android.ugc.aweme",
    # 抖音启动首界面名称
    "appActivity": ".splash.SplashActivity",
    # 不清除数据
    "noReset": True,
    # 使用键盘,支持中文,特殊字符
    "unicodeKeyboard": True,
    # 设置执行完成后重置键盘
    "resetKeyboard": True
}

四.全部代码如下:

# 初始化driver
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

# 隐式等待时间6s
driver.implicitly_wait(6)


class Mobile_Action:

    def swipe_up(self):
        # 获取当前手机屏幕高度和宽度
        size = driver.get_window_size()
        # 屏幕的宽
        width = size['width']
        # 屏幕的高
        height = size['height']
        # 屏幕中心坐标
        x1 = width / 2
        # 屏幕y轴的10分之6
        y1 = height / 10 * 6
        # 向上滑动的y轴终点坐标
        y2 = height / 10
        # 滑动间隔时间
        # num = random.randint(3, 10)
        sl = random.uniform(1, 3)
        sll = random.uniform(2, 4)
        time.sleep(sl or sll)
        # 模拟点击
        driver.swipe(x1, y1, x1, y1, 5)

        # 捕获异常
        try:
            # 用户名
            user = driver.find_element_by_id('com.ss.android.ugc.aweme:id/title')
            print('看到我超过1秒,就是阻塞在这了')
            # 内容
            content = driver.find_element_by_id('com.ss.android.ugc.aweme:id/a8y')
            # 点赞数
            dz = driver.find_element_by_id('com.ss.android.ugc.aweme:id/bcu').get_attribute('name')
            # 评论数
            pl = driver.find_element_by_id('com.ss.android.ugc.aweme:id/ave').get_attribute('name')
            # 音乐
            music = driver.find_element_by_id('com.ss.android.ugc.aweme:id/exd').get_attribute('name')
            # 获取出全部信息
            all_content = ('用户名:'+user.text)+'\n'+('内容:'+content.text)+'\n'+('点赞数:'+dz)+'\n'+(
                    '评论数:'+pl)+'\n'+('背景音乐:'+music)
            # 输出内容
            print(all_content)
            # num = random.uniform(0.5, 3)
            # time.sleep(num)
            # 400毫秒为滑动时间
            driver.swipe(x1, y1, x1, y2, 400)

        # 异常处理
        except:
            print('遇到了直播间')
            time.sleep(4)
            # 400毫秒为滑动时间
            driver.swipe(x1, y1, x1, y2, 400)
            time.sleep(3)
            # 退出直播间
            driver.swipe(685, 77, 685, 77, 4)
            driver.find_element_by_id('com.ss.android.ugc.aweme:id/gfc').click()
            time.sleep(1)
            driver.swipe(x1, y1, x1, y2, 400)


if __name__ == '__main__':
    ma1 = Mobile_Action()
    # 首次启动等待时间
    time.sleep(10)
    # 设置滑动次数
    for i in range(50):
        ma1.swipe_up()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值