题目描述
我们在做 WEB 网页数据抓取时,常常遇到如下场景:
- 简单的,小型的网页爬虫,可以通过 python 的 requests 模块请求网页数据;
- 稍有反爬策略网站,可以破解网站 JS 逻辑,通过 pyexec 运行 JS 代码段,通过 requests 模块请求网页数据;
- 遇到反爬逻辑无法破解,带有点击型验证码,滑动验证码网站时,我们可以通过 selenium+webdriver 进行自动化抓取。
那么面对 APP 应用,无法逆向破解,我们该如何进行自动化操作?如翻页,点击,滑动等操作。
思路点拨
1. 移动端 APP 运行环境分析
目前移动设备操作系统分为三大阵营,安卓、IOS、其他(Windows mobile),iOS 与 Windows mobile 系统都为闭源操作系统,iOS 基于 Unix,类似于苹果的 Mac OS X,但内核不完全一样,Android 基于 Linux,两个平台可以统称为 Unix-like(类 Unix)系统。
iOS 和 Windows Phone 的内核是不开放的,在安全性上也是胜过安卓一筹的,不过对于开发者来讲,由于系统不开放,很多接口无法获得,自然一些和系统关联比较密切的功能也就无法实现。因此,课程中选择安卓操作系统运行 APP 应用,通过 ADB 执行相应操作。
2. 自动化是如何实现的?
adb(Android Debug Bridge),安卓平台调试桥,是连接 Android 手机与 PC 端的桥梁,通过 adb 可以管理、操作模拟器和设备,如安装软件、查看设备软硬件参数、系统升级、运行 shell 命令等。
主要功能有:
- 运行设备的 shell (命令行) ;
- 管理模拟器或设备的端口映射 ;
- 计算机和设备之间上传 / 下载文件 ;
- 将本地 apk 软件安装至模拟器或 android 设备。