如何用 Python 实现安卓机自动化?python手机版「如何用 Python 实现安卓机自动化?」
这是「进击的Coder」的第 745 篇技术分享
作者:Jack Cui
来源:Jack Cui
“
阅读本文大概需要 6 分钟。
”今天给大家介绍一套安卓机自动化解决方案
Scrcpy,全称 screen copy,是一款开源的手机无线投屏软件。

而且还是跨平台的,无论是在 Linux、Windows 还是 macOS 上都能使用。
项目地址:
https://github.com/Genymobile/scrcpy
这里以 Windows 为例,安装起来非常简单:

直接下载安装包并解压就行,里面还带了调试工具。
然后添加一下系统的环境变量。

用 U 线连接手机和电脑,将手机调整为开发者模式。

这样,在电脑上运行 Scrcpy 指令:
就能将手机画面投放到电脑上了。

我们可以通过这个投放的画面,在电脑上,操纵这台手机。
但是,如果想要让代码自动化控制,那就还需要另外一款工具。
UiAutomator 是 Google 提供的用来做安卓自动化测试的一个 Java 库,基于 Accessibility 服务。功能很强,可以对第三方 App 进行测试,获取屏幕上任意一个 APP 的任意一个控件属性,并对其进行任意操作,但有两个限制:
测试脚本只能使用 Java 语言
测试脚本要打包成 jar 或者 apk 包上传到设备上才能运行
于是有了 UiAutomator2,逻辑可以用 Python 编写,能够在电脑上控制手机。
项目地址:
https://github.com/openatx/uiautomator2
安装方法也非常简单,直接 pip 安装即可,不过为了方便环境的管理,还是先创建一个 Conda 虚拟环境。
然后激活这个虚拟环境:
安装 uiautomator2 和 weditor。
然后用手机打开想要操控的 App,比如 BiliBili,打开软件后,使用 Weditor 审查元素。
这样就开启了一个 Web 界面,在这个界面里,能够审查元素,定位一些想要点击的点。

比如我想要给一个视频三连,那就审查三连的元素,然后将操作用代码流程化。
效果是这样的:

代码里有个 device_id 可以通过 adb 工具查询,手机连接电脑后,再用如下指令查询:
根据这个设备号,就能操纵这台手机。
这东西,还能用来做什么?
你知道,为啥抢茅台你总抢不到吗?抢个演唱会门票抢不到?挂号挂不到?
票贩子为啥总能抢到票?
很多平台限制必须手机上抢,这个时候,这项技术就能排上用场了。
我只能帮你到这了,剩下的,可以自己慢慢体验。
所以,家里的旧手机不要扔!写个脚本,能帮你干很多事~
End
崔庆才的新书《Python3网络爬虫开发实战(第二版)》已经正式上市了!书中详细介绍了零基础用 Python 开发爬虫的各方面知识,同时相比第一版新增了 JavaScript 逆向、Android 逆向、异步爬虫、深度学习、Kubernetes 相关内容,同时本书已经获得 Python 之父 Guido 的推荐,目前本书正在七折促销中!
内容介绍:《Python3网络爬虫开发实战(第二版)》内容介绍
扫码购买
舟山版权声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com