你有没有想过让你的手机帮你自动完成某些事情

比如自动帮你抢红包

有些软件不是有签到活动么

这些傻瓜式的操作

能不能让手机自动签到呢?

自动帮你叫外卖

自动帮你打电话

等等

还有

对于手机上的一些比较难以通过抓包获取的数据

想不想像 selenium 那样轻松获取?

之前小帅b就给大家介绍了 selenium

python爬虫09 | 上来,自己动 !这就是 selenium 的牛逼之处

可以模拟人类自动操作浏览器上的网页

我们还使用它爬取了

“鸡你太美”

python爬虫11 | 这次,将带你爬取b站上的NBA形象大使蔡徐坤和他的球友们

相信你已经体验到 selenium 的魅力了

对于一些复杂的 PC 端的网页爬取

它就是个利器

不过

对于手机上的一些稍微复杂点的 APP 数据

selenium 就显得有点无能为力了

那么

有没有像 selenium 这样的框架

可以模拟人类自动操作手机上的 APP 呢

答案是肯定的

那就是

Appium

如何让它来自动操作我们的手机呢

那么

接下来就是

学习 python 的正确姿势

为什么说 Appium 牛逼呢

说 4 点足以

1、他是开源的手机端自动测试框架

2、selenium可以做的 Appium 都可以做,selenium不可以做的Appium 依然可以做,它能够支持 Android、iOS、windows 系统的原生 APP 进行自动操作

3、它可以支持不同的语言写脚本,比如我们的 Python,还有Java、JavaScript 等

4、以前你想要爬取 App 的数据的时,对于较难抓取的数据,你还需要对 App 进行反编译,很麻烦,但是 Appium 就不需要这么麻烦

那 Appium 是怎么玩的呢

你可以把 Appium 当做是一个服务器

我们将我们写的控制操作 APP 的 python 代码

扔给 Appium

Appium 得到了请求,看到你跟它说要怎么去操作 APP

它就乖乖的听你话去操作 APP 了

我们在使用 Appium 之前

我们需要安装相关的环境才可以使用

由于 Android 开源又好用,又有虚拟机可以玩

所以我们要的就是自动操作 Android 手机

具体来说

我们需要安装以下环境

真香警告

Appium 虽然比 selenium 对环境的要求相对复杂一丢,但是相信我,搞定之后你绝对会体验到 Appium 的魅力,接下来要说的内容相对干货,你需要拿出点时间,然后跟着 小帅b 一步一步装起来,如果你之前没接触相关的环境安装,可能在安装过程中你会说几次脏话,没关系,"挖槽","TMD" 完之后,都给我安装好以下内容。

1、node.js 和 npm

Appium需要

2、JDK

java 环境,Android需要这个环境

3、Android SDK

Android强大的开发工具包

4、Android虚拟机

可选,如果你用你的真鸡也可以的,用 usb 插入电脑就行

5、Appium

我们的主角

6、Appium-Python-Client

python客户端,用来连接 Appium

7、Python

python相信你早已经安装了,还没有安装的是猪吧?

那么接下来

小帅b教你一步一步地安装起来

不同的操作系统安装方式可能有些许不同

但都差不多也就那会事

1、安装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

2、安装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....

3、安装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

4、安装 android 虚拟机

其实你有真鸡的话不用安装也可以

安装虚拟机你可以到以下链接下载

https://www.genymotion.com/download

想当年小帅b在玩 Android 开发的时候就经常用 genymotion

速度相对来说快了不少

打开虚拟鸡或者用你的真鸡连接电脑(记得打开usb调试)

然后输入 adb devices

如果你像小帅b一样列出你现在的 Android 手机

xiaoshuaib@xiaoshuaib:~$ adb devicesList of devices attached88CKBM622PAM  device

那么就说明是正确的啦

5、安装 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

6、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发点功

python爬虫23 | 手机,这次要让你上来自己动了。这就是 Appium+Python 的牛x之处的更多相关文章

  1. python爬虫24 | 搞事情了,用 Appium 爬取你的微信朋友圈。

    昨天小帅b看到一些事情不顺眼 有人偷换概念 忍不住就写了一篇反讽 996 的 看不下去了,我支持996,年轻人就该996! 没想到有些人看不懂 这就算了 还来骂我 早些时候关注我的小伙伴应该知道我第一 ...

  2. 小白学 Python 爬虫(23):解析库 pyquery 入门

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  3. 小白学 Python 爬虫(29):Selenium 获取某大型电商网站商品信息

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  4. Python爬虫与数据分析之模块:内置模块、开源模块、自定义模块

    专栏目录: Python爬虫与数据分析之python教学视频.python源码分享,python Python爬虫与数据分析之基础教程:Python的语法.字典.元组.列表 Python爬虫与数据分析 ...

  5. 小白学 Python 爬虫(17):Requests 基础使用

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  6. 小白学 Python 爬虫(25):爬取股票信息

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  7. Python 爬虫十六式 - 第五式:BeautifulSoup-美味的汤

    BeautifulSoup 美味的汤 学习一时爽,一直学习一直爽!    Hello,大家好,我是Connor,一个从无到有的技术小白.上一次我们说到了 Xpath 的使用方法.Xpath 我觉得还是 ...

  8. 小白学 Python 爬虫(26):为啥上海二手房你都买不起

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  9. 小白学 Python 爬虫(30):代理基础

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

随机推荐

  1. [Codeforces 1037E] Trip

    [题目链接] http://codeforces.com/problemset/problem/1037/E [算法] 首先离线 , 将问题倒过来考虑 , 转化为 : 每次删除一条边 , 此时最多有多 ...

  2. 【HDU 1588】 Gauss Fibonacci

    [题目链接] 点击打开链接 [算法] 要求 f(g(0)) + f(g(1)) + f(g(2)) + ... + f(g(n-1)) 因为g(i) = k * i + b 所以原式 = f(b) + ...

  3. 搜索goog

    http://www.tech365.net/share/24.html 64.233.160.132|64.233.168.17|64.233.168.167|64.233.160.98|64.23 ...

  4. Net框架下-ORM框架LLBLGen的简介(转载)

    Net框架下-ORM框架LLBLGen的简介 http://www.cnblogs.com/huashanlin/archive/2015/02/12/4288522.html 官方网址:http:/ ...

  5. [App Store Connect帮助]六、测试 Beta 版本(4.2) 管理 Beta 版构建版本:查看构建版本状态和指标

    必要职能:“帐户持有人”职能.“管理”职能.“App 管理”职能.“开发者”职能或“营销”职能.请参见职能权限. 在首页上,点按“我的 App”,选择您的 App,然后在工具栏中点按“TestFlig ...

  6. NET 编程题

    1.C#编写创建一个线程的代码 using System; using System.IO; using System.Threading ; class MyThread{ public int c ...

  7. [APIO2007]动物园

    题目描述 新建的圆形动物园是亚太地区的骄傲.圆形动物园坐落于太平洋的一个小岛上,包含一大圈围栏,每个围栏里有一种动物. 你是动物园的公共主管.你要做的是,让每个来动物园的人都尽可能高兴.今天有一群小朋 ...

  8. hdu2032

    http://acm.hdu.edu.cn/showproblem.php?pid=2032 #include<stdio.h> #include<math.h> #inclu ...

  9. CentOS环境下下调整home和根分区大小

    项目建设方给提供了3台CentOS的服务器,连接进去之后发现磁盘空间很大,但是都放在了home目录下,所以需要调整一下. 1.查看磁盘使用情况 [root@CentOS ~]# df -h Files ...

  10. LN : leetcode 513 Find Bottom Left Tree Value

    lc 513 Find Bottom Left Tree Value 513 Find Bottom Left Tree Value Given a binary tree, find the lef ...