首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
12.1 Charles 抓包工具的使用
12.2 mitmproxy 抓包工具的使用
12.3 mitmdump 实时抓包处理
12.4 Appium 的使用
12.5 基于 Appium 的 App 爬取实战
12.6 Airtest 的使用
12.7 基于 Airtest 的 App 爬取实战
12.8 手机群控爬取实战
12.9 云手机的使用
13.0 Android 逆向
13.1 jadx 的使用
13.2 JEB 的使用
13.3 Xposed 框架的使用
13.4 基于 Xposed 的爬取实战案例
13.5 Frida 的使用
13.6 SSL Pining 问题的解决方案
13.7 Android 脱壳技术简介与实战
13.8 利用 IDA Pro 静态分析和动态调试 so 文件
13.9 基于 Frida-RPC 模拟执行 so 文件
13.10 基于 AndServer-RPC 模拟执行 so 文件
13.11 基于 unidbg 模拟执行 so 文件
14.1 页面智能解析简介
14.2 详情页智能解析算法简介
14.3 详情页智能解析算法的实现
14.4 列表页智能解析算法简介
14.5 列表页智能解析算法的实现
14.6 如何智能分辨列表页和详情页
15.1 Scrapy框架介绍
15.2 Scrapy入门
15.3 Selector 的使用
15.4 Spider 的使用
15.5 Downloader Middleware的使用
15.6 Spider Middleware的使用
15.7 Item Pipeline的使用
15.8 Extension的使用
15.9 Scrapy 对接 Selenium
15.10 Scrapy 对接 Splash
15.11 Scrapy 对接 Pyppeteer
15.12 Scrapy 规则化爬虫
15.13 Scrapy 实战
16.1 分布式爬虫理念
16.2 Scrapy-Redis原理和源码解析
16.3 基于Scrapy-Redis的分布式爬虫实现
16.4 基于Bloom Filter进行大规模去重
16.5 基于RabbitMQ的分布式爬虫
17.1 Scrapyd和ScrapydAPI的使用
17.2 Scrapyd-Client 的使用
17.3 Gerapy 爬虫管理框架的使用
17.4 将Scrapy 项目打包成 Docker 镜像
17.5 Docker Compose 的使用
17.6 Kubernetes的使用
17.7 用 Kubernetes 部署和管理 Scrapy 爬虫
17.8 Scrapy 分布式爬虫的数据统计方案
17.9 基于Prometheus和Grafana的分布式爬虫监控方案
当前位置:
首页>>
技术小册>>
Python3网络爬虫开发实战(下)
小册名称:Python3网络爬虫开发实战(下)
### 12.7 基于 Airtest 的 App 爬取实战 #### 引言 在移动应用(App)数据日益丰富的今天,如何高效地从App中提取有价值的信息成为了数据分析、市场研究及自动化测试等领域的重要课题。Airtest 是一个跨平台的UI自动化测试框架,它支持Android、iOS以及Windows应用,通过图像识别与脚本语言(基于Python)的结合,为自动化测试及App数据爬取提供了强大的工具。本章将详细介绍如何使用Airtest进行App爬取的实战操作,包括环境搭建、基本操作、高级技巧及实际应用案例。 #### 12.7.1 Airtest 环境搭建 ##### 1. 安装 AirtestIDE AirtestIDE 是Airtest的官方集成开发环境(IDE),集成了Airtest框架及PocoUI自动化测试框架,支持一键录制、脚本编写、实时预览等功能,极大地方便了开发和测试人员。 - 访问Airtest的官方网站([http://airtest.netease.com/](http://airtest.netease.com/)),下载并安装AirtestIDE。 - 安装完成后,打开AirtestIDE,进行基本设置,如设置Android/iOS设备连接等。 ##### 2. 连接设备 - **Android设备**:确保设备已开启开发者模式,并允许USB调试。使用USB线连接电脑后,AirtestIDE会自动识别设备。 - **iOS设备**:由于iOS的限制,通常需要借助Mac电脑和Xcode进行无线调试,或使用第三方工具如Airtest提供的iOS-Tagent进行连接。 ##### 3. 依赖库安装 AirtestIDE内部集成了大部分所需库,但如有特殊需求,可通过Python包管理器pip安装额外库。 #### 12.7.2 Airtest 基本操作 ##### 1. 录制与生成脚本 - **录制功能**:在AirtestIDE中,可以使用录制功能快速生成基础脚本。点击“录制”按钮,在设备上进行操作,IDE会自动生成对应的脚本代码。 - **脚本编辑**:录制生成的脚本可能需要进一步编辑以满足实际需求。AirtestIDE提供了代码编辑区,支持Python语法,可以添加条件判断、循环等控制结构。 ##### 2. 图像识别 Airtest的一个核心功能是图像识别,它允许用户通过截图来定位界面元素。 - **截图**:在AirtestIDE中,可以使用“截图”工具截取界面中的特定元素。 - **使用截图定位**:在脚本中,通过`touch(Template(r"path/to/image.png", record_pos=(0.5, 0.5), resolution=(1080, 1920)))`的方式,利用截图进行元素点击等操作。 ##### 3. PocoUI 辅助 PocoUI是Airtest提供的另一套UI自动化框架,基于UI控件的层级关系进行元素定位和操作,与图像识别形成互补。 - **启用PocoUI**:在AirtestIDE中,可以通过连接设备后自动检测或手动指定Poco服务来启用PocoUI。 - **使用Poco进行元素定位**:通过Poco的选择器(如id、text、desc等)来定位元素,并执行点击、输入等操作。 #### 12.7.3 高级技巧 ##### 1. 异常处理 在自动化脚本中,添加异常处理机制可以有效提高脚本的健壮性和容错能力。 ```python try: # 尝试执行的代码 touch(Template(r"path/to/image.png")) except Exception as e: print(f"发生错误:{e}") # 错误处理代码 ``` ##### 2. 等待机制 App界面元素的加载和显示可能存在延迟,使用等待机制可以提高脚本的稳定性。 ```python wait(Template(r"path/to/image.png", timeout=10)) # 等待最多10秒 ``` ##### 3. 滑动与拖拽 滑动和拖拽是App操作中常见的交互方式,Airtest提供了相应的API来实现这些操作。 ```python swipe((x1, y1), (x2, y2), duration=1.0) # 从(x1, y1)滑动到(x2, y2),持续时间为1秒 drag((x1, y1), (x2, y2), duration=1.0) # 拖拽操作,参数与滑动相同 ``` #### 12.7.4 实战案例:爬取某电商App的商品信息 假设我们需要从一款电商App中爬取特定类别的商品信息,包括商品名称、价格、销量等。 ##### 1. 分析目标App - **确定目标页面**:首先,确定需要爬取的商品列表页面。 - **识别关键元素**:通过AirtestIDE的截图功能,识别并截取商品列表中的关键元素,如商品图片、商品名称、价格标签等。 ##### 2. 编写脚本 - **初始化**:设置设备连接,启动App。 - **定位并遍历商品**:利用PocoUI或图像识别定位到商品列表的第一个商品,然后通过滑动屏幕遍历所有商品。 - **提取信息**:对于每个商品,定位到其名称、价格等元素,并提取文本信息。 - **存储数据**:将提取的数据保存到本地文件或数据库中。 ##### 3. 脚本执行与调试 - 在AirtestIDE中运行脚本,观察执行效果。 - 根据需要调整等待时间、滑动速度等参数,确保脚本稳定运行。 - 对可能出现的异常进行调试,并添加相应的异常处理代码。 ##### 4. 数据分析 - 将爬取到的数据存储到合适的数据结构(如Pandas DataFrame)中。 - 使用数据分析工具(如Pandas、NumPy)对数据进行清洗、转换和统计分析。 - 可视化分析结果,如生成商品价格分布图、销量排行榜等。 #### 结论 通过本章的学习,我们掌握了基于Airtest的App爬取实战技能,包括环境搭建、基本操作、高级技巧以及一个具体的实战案例。Airtest凭借其跨平台、易上手及强大的图像识别能力,在App自动化测试和数据爬取领域具有广泛的应用前景。未来,随着移动应用的不断发展和更新,我们将需要不断探索和学习新的技术和方法,以应对更加复杂和多样的挑战。
上一篇:
12.6 Airtest 的使用
下一篇:
12.8 手机群控爬取实战
该分类下的相关小册推荐:
Python合辑9-判断和循环
剑指Python(磨刀不误砍柴工)
Python数据分析与挖掘实战(上)
Python爬虫入门与实战开发(下)
Python与办公-玩转Word
Python数据分析与挖掘实战(下)
Python自动化办公实战
Python机器学习实战
Python机器学习基础教程(上)
实战Python网络爬虫
机器学习算法原理与实战
Python合辑1-Python语言基础