第11章-移动端数据抓取

本文介绍了移动端数据抓取的技术,包括UIAutomator2的Python支持,四大组件,Adb的使用,weditor工具的操控,以及Fiddler的移动端抓包。UIAutomator2提供了Python接口,降低了自动化测试的学习成本,而weditor则用于方便地选择和操控Activity的控件。此外,还讲述了如何利用Fiddler进行移动端的网络数据抓包与分析。
摘要由CSDN通过智能技术生成

一、移动端前导知识

1.1 UIAutomator的介绍

UIAutomator是google提供的⽤来做安卓⾃动化测试(可以对第三方App进行测试,获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作)的⼀个java库,类似selinium框架,基于accessibility服务(Android的一个辅助功能,如点击功能;继承于service类—Android四大组件之一)

缺陷:

  • 测试脚本只能⽤Java语⾔开发
  • 测试脚本要打包成jar包或者apk包上传到设备上才能实现
1.2 Android四大组件
  • Activity:是一种展示型组件,主要是向用户展示一个界面,并且可以接收用户的输入信息从而和用户进行交互(相当于活动窗口)
  • Service:是一种计算型组件,用于在后台执行一系列计算任务
  • BroadcastReceiver:是一种消息型组件,用于在不同组件乃至不同应用之间传递消息
  • ContentProvider:是一种数据共享型组件,用于向其他组件乃至其他应用共享数据
1.3 UIAutomator2的介绍

(1)UIAutomator2:又称U2,它的优势:

  • UI⾃动化编写采⽤Python,学习成本低
  • UI控件识别有专⻔的⼯具 weditor

项⽬地址https://github.com/openatx/uiautomator2

(2)UIAutomator2的执⾏流程:

  • 在移动设备上安装atx-agent(守护进程),随后atx-agent启动U2服务(默认7912端⼝)进⾏监听
  • 在PC端来编写脚本发送到移动端的7912端口(相当于发送HTTP请求到移动设备的server端)
  • 移动设备通过wifi或usb接收到了PC上发来的HTTP请求(atx-agent会自动转化为U2代码),执⾏自动化操作

U2的初始化,会向移动端推送四个文件:

  • UIAutomator-server:⾕歌原生的 uiautomator
  • Atx-agent:uiautomator的守护进程,负责启动U2
  • Minicap和Minitouch:是用NDK开发的工具,属于Android的底层开发,用于采集屏幕并输出图像形成视频,实现在PC端进行Android手机屏幕实时显示的目的(是atx-agent增加远程控制功能的依赖)
1.4 Adb的安装与应用
1.4.1 Adb简介

Adb即Android Debug Bridge,⼜称Android调试桥,是一个命令行工具,⽤于电脑端与模拟器或者是设备之间的交互

  • Adb client :命令⾏程序‘adb’,通过shell或脚本运⾏adb命令
  • Adb server:运⾏在PC上的⼀个后台程序
  • Adbd :作为⼀个后台进程,在Android设备或模拟器系统中运⾏
    在这里插入图片描述
    其中, adb server作为adb client的服务端, 而adbd又作为adb server的服务端。

adb的作⽤:

  • 安装卸载apk⽂件
  • 移动设备和PC之间拷⻉⽂件
  • 查看设备上安装的应⽤信息
  • ⽂件管理
  • 按键操作
1.4.2 Adb安装与应用

Adb的便捷安装方式:通过安装模拟器自带Adb安装实现,并将Adb.exe所在文件路径添加到path环境变量中
在设置–>关于手机–>版本号–>双击打开‘开发者选项’–>打开‘USB调试’
(1)查看链接的移动设备:adb devices

C:\Users\zhaoh>adb devices
List of devices attached
127.0.0.1:62025 device

(2)安装文件: adb install apk⽂件路径,安装路径不能有中文

C:\Users\zhaoh>adb install C:\Users\zhaoh\Desktop\106_2a65b5b89a76f0f1e28b51fe6461f077.apk
[100%] /data/local/tmp/106_2a65b5b89a76f0f1e28b51fe6461f077.apk
        pkg: /data/local/tmp/106_2a65b5b89a76f0f1e28b51fe6461f077.apk
Success

在cmd下输入adb install ,然后将安装文件拖入至cmd即可得到完整的安装路径

(3)查看应⽤包名:adb shell pm list packages

C:\Users\zhaoh>adb shell pm list packages
..................
package:com.android.providers.downloads
package:com.android.browser
package:com.tal.kaoyan
...............

(4)卸载应⽤:adb uninstall 应⽤包名

C:\Users\zhaoh>adb uninstall com.tal.kaoyan
Success

(5)关闭链接的移动设备:adb kill-server

二、UIAutomator2

2.1 U2快速入门

(1)UIautomator安装
pip install --upgrade --pre uiautomator2
(2)启动模拟器,连接移动设备
adb devices
(3)初始化移动设备
python -m uiautomator2 init
初始化成功后,会同时在移动设备端上自动下载安装UIAutomator-server、 Atx-agent、 Minicap和Minitouch。其中Atx应用在移动端可见(初始化相当于驱动的安装,只需初始化一次即可)在这里插入图片描述
(4)U2控制移动端设备

方式1:U2通过wifi(需要移动端IP)控制移动设备端—不推荐使用
设置–>WLAN–>高级–>IP地址:172.17.100.15

import uiautomator2 as u2
d = u2.connect_wifi('172.17.100.15') 

如果连接失败,一般都是网络受限,PC和终端位于不同的局域网中

方式2:U2通过usb(需要移动端序列号)控制移动设备端------推荐用此方法
在这里插入图片描述

import uiautomator2 as u2
d = u2.connect_usb('127.0.0.1:62025')
print(d.info)

返回值:

C:\Python38\python.exe D:/pycharm/02-爬虫/U2的使用.py
{
   'c
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值