IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> UiAutomator2+weditor+python获取页面(android)文本数据 -> 正文阅读

[移动开发]UiAutomator2+weditor+python获取页面(android)文本数据

终极目标:获取抖音直播时评论数据。

准备工作:

1. android手机或模拟器(无需root)

2. python环境

开始:

1.设备连接

android手机打开开发者模式,USB连接电脑,允许USB调试。

命令行输入adb devices查看设备,AWMCUT1224008813为设备序列号待会要用

>adb devices
List of devices attached
AWMCUT1224008813  device

2.安装UiAutomator2

确保python环境没有问题,我这里使用的python3

命令行运行pip3 install -U uiautomator2 安装UiAutomator2

3.安装httprpc服务

运行python -m uiautomator2?init安装包含httprpc服务的apk到手机

上述初始化命令会自动安装本库所需要的设备端程序:uiautomator-server、atx-agent、openstf/minicap、openstf/minitouch,并且在被测手机终端上会安装一个名为ATX的代理程序

4.安装weditor

运行pip3 install --pre -U weditor安装weditor在线元素查看器,weditor --help查看是否安装成功

5. 使用weditor查看界面元素

命令行执行 weditor 会自动打开浏览器(http://localhost:17310/),输入设备的ip或者序列号,点击Connect,打开实时开关。

?此时打开app,可以在右侧Hierarchy查看界面元素树

?6.编写脚本获取评论列表文本内容

d = u2.connect('AWMCUT1224008813') 对应连接设备的序列号,

#coding=utf8
import uiautomator2 as u2
import time
import logging
import re
import json
from string import Template
d = u2.connect('AWMCUT1224008813')
d.click_post_delay = 1.5#
 
logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(funcName)s - %(message)s')
logger = logging.getLogger(__name__)
logger.info(d)

def run_app():
    d.app_start("com.ss.android.ugc.aweme")#打开程序
    if d.session("com.ss.android.ugc.aweme", attach=True):#判断程序是否打开
        logger.info("已打开程序")
        if d(text="更多直播").exists(timeout=5):#exists:等待元素出现
            logger.info("当前是打开状态??")
      
            print("size:", d.xpath('//*[@resource-id="com.ss.android.ugc.aweme:id/fvw"]/android.widget.RelativeLayout').all())
            
            for index,elem in enumerate(d.xpath('//*[@resource-id="com.ss.android.ugc.aweme:id/fvw"]/android.widget.RelativeLayout').all()): 
                print("%s" %(index+1))
                i = index + 1
                s = f"//android.widget.RelativeLayout[{i}]/android.widget.TextView"
                print(s)
                print("item:", d.xpath(s).text)
                
        else:
            logger.info("未找到指定文本??")
    else:
        print('app打开错误')
        

        
run_app()

部分log如下:

分类: 美食探店
1
//android.widget.RelativeLayout[1]/android.widget.TextView
item: 说点什么...
2
//android.widget.RelativeLayout[2]/android.widget.TextView
item: $ 楠楠楠:店铺
3
//android.widget.RelativeLayout[3]/android.widget.TextView
item: $ 锁锁美:4号代金券限菜品吗使用吗?
4
//android.widget.RelativeLayout[4]/android.widget.TextView
item: $ 小熙:怎么适应
5
//android.widget.RelativeLayout[5]/android.widget.TextView
item: $ 小熙:怎么使用
6
//android.widget.RelativeLayout[6]/android.widget.TextView
item: 耶啵啵:那为什么显示生菜一份 两人需要再付一份?
7
//android.widget.RelativeLayout[7]/android.widget.TextView
item: Joker男士理发馆Jimmy 来了
[Finished 9.701s]

这段脚本执行后会根据包名自动打开抖音,在直播页面通过d.xpath('//*[@resource-id="com.ss.android.ugc.aweme:id/fvw"]')获取评论列表的recyclerview,再通过遍历recyclerview下的RelativeLayout打印出RelativeLayout下的TextView中内容。当然也可以直接遍历TextView的id(text)来进行获取,注意:不同设备的ViewGroup的id也就是TextView的父view的id可能会不同。

对列表元素的遍历是从1开始的。

另外,此时仅获取到当前屏幕上的数据,可以加个定时器不断的进行获取并保存,再对数据去重。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-18 10:17:43  更:2021-09-18 10:17:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:06:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码