你有没有想过让你的手机帮你自动完成某些事情php
好比自动帮你抢红包html
有些软件不是有签到活动么java
这些傻瓜式的操做node
能不能让手机自动签到呢?python
自动帮你叫外卖android
自动帮你打电话ios
等等nginx
还有git
对于手机上的一些比较难以经过抓包获取的数据github
想不想像 selenium 那样轻松获取?
以前小帅b就给你们介绍了 selenium
python爬虫09 | 上来,本身动 !这就是 selenium 的牛逼之处
能够模拟人类自动操做浏览器上的网页
咱们还使用它爬取了
“鸡你太美”
python爬虫11 | 此次,将带你爬取b站上的NBA形象大使蔡徐坤和他的球友们
相信你已经体验到 selenium 的魅力了
对于一些复杂的 PC 端的网页爬取
它就是个利器
不过
对于手机上的一些稍微复杂点的 APP 数据
selenium 就显得有点无能为力了
那么
有没有像 selenium 这样的框架
能够模拟人类自动操做手机上的 APP 呢
答案是确定的
那就是
Appium
如何让它来自动操做咱们的手机呢
那么
接下来就是
为何说 Appium 牛逼呢
说 4 点足以
一、他是开源的手机端自动测试框架
二、selenium能够作的 Appium 均可以作,selenium不能够作的Appium 依然能够作,它可以支持 Android、iOS、windows 系统的原生 APP 进行自动操做
三、它能够支持不一样的语言写脚本,好比咱们的 Python,还有Java、JavaScript 等
四、之前你想要爬取 App 的数据的时,对于较难抓取的数据,你还须要对 App 进行反编译,很麻烦,可是 Appium 就不须要这么麻烦
那 Appium 是怎么玩的呢
你能够把 Appium 当作是一个服务器
咱们将咱们写的控制操做 APP 的 python 代码
扔给 Appium
Appium 获得了请求,看到你跟它说要怎么去操做 APP
它就乖乖的听你话去操做 APP 了
咱们在使用 Appium 以前
咱们须要安装相关的环境才可使用
因为 Android 开源又好用,又有虚拟机能够玩
因此咱们要的就是自动操做 Android 手机
具体来讲
咱们须要安装如下环境
真香警告
Appium 虽然比 selenium 对环境的要求相对复杂一丢,可是相信我,搞定以后你绝对会体验到 Appium 的魅力,接下来要说的内容相对干货,你须要拿出点时间,而后跟着 小帅b 一步一步装起来,若是你以前没接触相关的环境安装,可能在安装过程当中你会说几回脏话,不要紧,"挖槽","TMD" 完以后,都给我安装好如下内容。
一、node.js 和 npm
Appium须要
二、JDK
java 环境,Android须要这个环境
三、Android SDK
Android强大的开发工具包
四、Android虚拟机
可选,若是你用你的真鸡也能够的,用 usb 插入电脑就行
五、Appium
咱们的主角
六、Appium-Python-Client
python客户端,用来链接 Appium
七、Python
python相信你早已经安装了,尚未安装的是猪吧?
那么接下来
小帅b教你一步一步地安装起来
不一样的操做系统安装方式可能有些许不一样
但都差很少也就那会事
一、安装node和npm
你能够到如下连接去下载 node 安装包
https://nodejs.org/zh-cn/download/
而后一顿安装
windows安装的时候记得勾选 Add to path (添加到环境变量)
若是你和小帅b同样用 ubuntu 这种类 Unix 系统的话输个命令就行
sudo apt-get updatesudo apt-get install nodejs
而后你输入命令 node -v
若是显示版本号就说明你成功安装 node 了
xiaoshuaib@xiaoshuaib:~$ node -vv10.15.3
安装 node 过程当中同时也安装了 npm 了
输入 npm -v 有显示版本好的话说明你安装好了 npm
xiaoshuaib@xiaoshuaib:~$ npm -v6.4.1
二、安装JDK
你能够到如下连接去下载 jdk
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
根据你的系统自行选择相应的 jdk
安装完成以后记得配置好 Java 环境变量
如何配置 jdk 环境变量就不在这里说了
由于不一样的系统配置方式不一样
你能够自行 Google
在你的终端输入 javac ,若是你获得以下的东西说明你成功安装好 jdk 和 配置好环境了
xiaoshuaib@xiaoshuaib:~$ javacUsage: javac <options> <source files>where possible options include: -g Generate all debugging info -g:none Generate no debugging info -g:{lines,vars,source} Generate only some debugging info -nowarn Generate no warnings -verbose Output messages about what the compiler is doing -deprecation Output source locations where deprecated APIs are used -classpath <path> Specify where to find user class files and annotation processors -cp <path> Specify where to find user class files and annotation processors -sourcepath <path> Specify where to find input source files -bootclasspath <path> Override location of bootstrap class files -extdirs <dirs> Override location of installed extensions -endorseddirs <dirs> Override location of endorsed standards path -proc:{none,only} Control whether annotation processing and/or compilation is done....
三、安装Android SDK
有些小伙伴可能以前没开发过 Android
不过不要紧
Android SDK 是 Android 开发的工具包
下载方式和 JDK 相似
能够到如下连接去下载 sdk
https://developer.android.com/studio#downloads
若是你打不开这个连接的话
能够用镜像连接
http://www.android-studio.org/index.php/download/hisversion
下载完以后就一顿解压
解压完以后打开 sdkmanager
windows的话有界面
直接选择一个 Android 版本
而后你点击 install package 就能够了
或者你也能够像 Linux 同样
解压完以后
进入目录中的 /tools/bin
输入如下命令安装最新的工具
xiaoshuaib@xiaoshuaib:~/android/tools/bin$ ./sdkmanager "platform-tools" "platforms;android-28"
接着配置一下环境变量
ubuntu 的话能够这样配
打开 profile
sudo vim /etc/profile
添加你安装的sdk的目录
export ANDROID_HOME=/home/xiaoshuaib/androidexport PATH=$PATH:${ANDROID_HOME}/toolsexport PATH=$PATH:${ANDROID_HOME}/platform-tools
而后设置生效后重启一下
source /etc/profile
windows配置环境变量的话
也是这个道理
在你的电脑--属性--高级--环境变量
新建一个变量 ANDROID_HOME
值就是你刚刚解压下来的 Android 目录
而后在你的 path 中添加
${ANDROID_HOME}/tools;${ANDROID_HOME}/platform-tools
接着
在命令行输入 adb shell
若是你出现和小帅b如下这样的就说明你配置对了
xiaoshuaib@xiaoshuaib:~$ adb shell* daemon not running; starting now at tcp:5037* daemon started successfully
四、安装 android 虚拟机
其实你有真鸡的话不用安装也能够
安装虚拟机你能够到如下连接下载
https://www.genymotion.com/download
想当年小帅b在玩 Android 开发的时候就常常用 genymotion
速度相对来讲快了很多
打开虚拟鸡或者用你的真鸡链接电脑(记得打开usb调试)
而后输入 adb devices
若是你像小帅b同样列出你如今的 Android 手机
xiaoshuaib@xiaoshuaib:~$ adb devicesList of devices attached88CKBM622PAM device
那么就说明是正确的啦
五、安装 Appium
第一种安装方式
使用命令行用 npm 安装 Appium
npm install -g appium
ubuntu须要权限的话可使用以下命令
sudo npm install -g appium --unsafe-perm=true --allow-root
第二种安装方式
你也能够到如下连接直接下载安装包
https://github.com/appium/appium-desktop/releases
安装完以后输入命令 appium
若是你和小帅b这样的就说明成功安装 Appium了
xiaoshuaib@xiaoshuaib:~$ appium[Appium] Welcome to Appium v1.12.1[Appium] Appium REST http interface listener started on 0.0.0.0:4723
六、Appium-Python-Client
pip install Appium-Python-Client
OK
那么到如今咱们就把该装的装完了
酸爽~
咱们能够来安装如下 appium-doctor 来检测一下咱们安装的环境是否均可以了
npm install -g appium-doctor
安装完以后输入 appium-doctor
若是你也出现这样的
congratulation
你已经搞定所需环境啦
事不宜迟
赶忙整个小例子试试水先
咱们就让它自动打开手机的微信 APP 吧
确保手机链接到电脑
xiaoshuaib@xiaoshuaib:~$ adb devicesList of devices attached88CKBM622PAM device
开启 Appium
xiaoshuaib@xiaoshuaib:~$ appium[Appium] Welcome to Appium v1.12.1[Appium] Appium REST http interface listener started on 0.0.0.0:4723
写个python
# coding=utf-8
from appium import webdriver
desired_caps = { 'platformName': 'Android', 'deviceName': '88CKBM622PAM', 'platformVersion': '5.1', 'appPackage': 'com.tencent.mm', 'appActivity': 'com.tencent.mm.ui.LauncherUI' }
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
运行python以后
Appium 开始执行
看看你的手机
自动打开了!
cool~
ok
本篇主要让你知道怎么安装这些所须要的环境
可能你如今有点疑问
怎么知道微信的包名的
怎么知道微信的启动页面的
python代码如何写自动操做的
别急
你先把环境安装好
下一篇
小帅b将带你使用 Appium 来爬取 APP 上的数据
期待就行了
帅b老仙
法力无边
右下角点一下
给小帅b发点功