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

比如自动帮你抢红包

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

这些傻瓜式的操作

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

自动帮你叫外卖

自动帮你打电话

等等

还有

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

想不想像 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. BZOJ_3280_小R的烦恼_最小费用最大流

    BZOJ_3280_小R的烦恼_最小费用最大流 Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要 求小R帮助他一起解决一个难 ...

  2. python-----查看显卡gpu信息

    需要安装pynvml库. 下载地址为:https://pypi.org/project/nvidia-ml-py/#history pip安装的命令为: pip install nvidia-ml-p ...

  3. PCB .NET Reactor 加密工具(NecroBit加密技术)

    在PCB行业中,我们使用的软件或脚本绝大多数都用非编译型语言写程序,而从一开始选择这种编程语言,就注定了程序的源码有被曝露风险.我们PCB工程系统用.NET语言编写,C#编译后会被转换为IL代码的中间 ...

  4. Rails 插入代码与注释

    醉了醉了,在原来那个表格最后加了然后更新博客,然后最后写的内容就没了.来来回回试了n次都一样.不得已新开一个    插入代码  <% ... %>  打印值  <%= ... %&g ...

  5. Rails5 layout 和 template

    layout是布局,比如页面的头(head), 脚(foot), 内容(body) template是布局的一部分的内容   这两货实在太像了,写了这些我也是一脸懵逼. 换个说法,layout和tem ...

  6. Windows环境下使用Netsh命令快速切换IP配置

    不同的内网环境需要使用不同的IP配置,频繁切换令人发狂,因此搜索了快速切换IP配置的方法. Netsh interface IP Set address "以太网" Static ...

  7. 初窥Android Studio

    Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于 ...

  8. Hbase源码分析:server端RPC

    server端rpc包括master和RegionServer.接下来主要梳理一下,master和regionserver中有关rpc创建,启动以及处理的过程. 1,server rpc的初始化过程 ...

  9. Python的I/O操作

    1.读取键盘输入 msg = raw_input("Please enter :") print "you input ",msg #可接受Python表达式作 ...

  10. 存储过程中高性能安全式SQL拼接

    不少开发人员在进行SQL拼接时头痛之极,不知道如何进行拼接操作才会更安全又不影响性能,下面我以存储过程为例与大家分享一个相对比较安全高效的方法 简介:存储过程(Stored Procedure)是在大 ...