[Python3网络爬虫开发实战] 1.7.3-Appium的安装
Appium是移动端的自动化测试工具,类似于前面所说的Selenium,利用它可以驱动Android、iOS等设备完成自动化测试,比如模拟点击、滑动、输入等操作,其官方网站为:http://appium.io/。本节中,我们就来了解一下Appium的安装方式。
1. 相关链接
- GitHub:https://github.com/appium/appium
- 官方网站:http://appium.io
- 官方文档:http://appium.io/introduction.html
- 下载链接:https://github.com/appium/appium-desktop/releases
- Python Client:https://github.com/appium/python-client
2. 安装Appium
首先,需要安装Appium。Appium负责驱动移动端来完成一系列操作,对于iOS设备来说,它使用苹果的UIAutomation来实现驱动;对于Android来说,它使用UIAutomator和Selendroid来实现驱动。
同时Appium也相当于一个服务器,我们可以向它发送一些操作指令,它会根据不同的指令对移动设备进行驱动,以完成不同的动作。
安装Appium有两种方式,一种是直接下载安装包Appium Desktop来安装,另一种是通过Node.js来安装,下面我们介绍一下这两种安装方式。
Appium Desktop
Appium Desktop支持全平台的安装,我们直接从GitHub的Releases里面安装即可,链接为https://github.com/appium/appium-desktop/releases。目前的最新版本是1.1,下载页面如图1-71所示。
图1-71 下载页面
Windows平台可以下载exe安装包appium-desktop-Setup-1.1.0.exe,Mac平台可以下载dmg安装包如appium-desktop-1.1.0.dmg,Linux平台可以选择下载源码,但是更推荐用Node.js安装方式。
安装完成后运行,看到的页面如图1-72所示。
图1-72 运行页面
如果出现此页面,则证明安装成功。
Node.js
首先需要安装Node.js,具体的安装方式可以参见http://www.runoob.com/nodejs/nodejs-install-setup.html,安装完成之后就可以使用npm命令了。
接下来,使用npm命令全局安装Appium即可:
|
1
|
npm install -g appium
|
此时等待命令执行完成即可,这样就成功安装了Appium。
3. Android开发环境配置
如果我们要使用Android设备做App抓取的话,还需要下载和配置Android SDK,这里推荐直接安装Android Studio,其下载地址为https://developer.android.com/studio/index.html?hl=zh-cn。下载后直接安装即可。
然后,我们还需要下载Android SDK。直接打开首选项里面的Android SDK设置页面,勾选要安装的SDK版本,点击OK按钮即可下载和安装勾选的SDK版本,如图1-73所示。
图1-73 Android SDK设置页面
另外,还需要配置一下环境变量,添加ANDROID_HOME为Android SDK所在路径,然后再添加SDK文件夹下的tools和platform-tools文件夹到PATH中。
更详细的配置可以参考Android Studio的官方文档:https://developer.android.com/studio/intro/index.html。
4. iOS开发环境
首先需要声明的是,Appium是一个做自动化测试的工具,用它来测试我们自己开发的App是完全没问题的,因为它携带的是开发证书(Development Certificate)。但如果我们想拿iOS设备来做数据爬取的话,那又是另外一回事了。一般情况下,我们做数据爬取都是使用现有的App,在iOS上一般都是通过App Store下载的,它携带的是分发证书(Distribution Certificate),而携带这种证书的应用都是禁止被测试的,所以只有获取ipa安装包再重新签名之后才可以被Appium测试,具体的方法这里不再展开阐述。
这里推荐直接使用Android来进行测试。如果你可以完成上述重签名操作,那么可以参考如下内容配置iOS开发环境。
Appium驱动iOS设备必须要在Mac下进行,Windows和Linux平台是无法完成的,所以下面介绍一下Mac平台的相关配置。
Mac平台需要的配置如下:
- macOS 10.12及更高版本
- XCode 8及更高版本
配置满足要求之后,执行如下命令即可配置开发依赖的一些库和工具:
|
1
|
xcode-select --install
|
这样iOS部分的开发环境就配置完成了,我们就可以用iOS模拟器来进行测试和数据抓取了。
如果想要用真机进行测试和数据抓取,还需要额外配置其他环境,具体可以参考https://github.com/appium/appium/blob/master/docs/en/appium-setup/real-devices-ios.md。
[Python3网络爬虫开发实战] 1.7.3-Appium的安装的更多相关文章
- [Python3网络爬虫开发实战] 1.3.2-Beautiful Soup的安装
Beautiful Soup是Python的一个HTML或XML的解析库,我们可以用它来方便地从网页中提取数据.它拥有强大的API和多样的解析方式,本节就来了解下它的安装方式. 1. 相关链接 官方文 ...
- [Python3网络爬虫开发实战] 1.9.4-Scrapyd API的安装
安装好了Scrapyd之后,我们可以直接请求它提供的API来获取当前主机的Scrapy任务运行状况.比如,某台主机的IP为192.168.1.1,则可以直接运行如下命令获取当前主机的所有Scrapy项 ...
- 崔庆才Python3网络爬虫开发实战电子版书籍分享
资料下载地址: 链接:https://pan.baidu.com/s/1WV-_XHZvYIedsC1GJ1hOtw 提取码:4o94 <崔庆才Python3网络爬虫开发实战>高清中文版P ...
- 《Python3 网络爬虫开发实战》开发环境配置过程中踩过的坑
<Python3 网络爬虫开发实战>学习资料:https://www.cnblogs.com/waiwai14/p/11698175.html 如何从墙内下载Android Studio: ...
- 《Python3 网络爬虫开发实战》学习资料
<Python3 网络爬虫开发实战> 学习资料 百度网盘:https://pan.baidu.com/s/1PisddjC9e60TXlCFMgVjrQ
- Python3网络爬虫开发实战PDF高清完整版免费下载|百度云盘
百度云盘:Python3网络爬虫开发实战高清完整版免费下载 提取码:d03u 内容简介 本书介绍了如何利用Python 3开发网络爬虫,书中首先介绍了环境配置和基础知识,然后讨论了urllib.req ...
- 转:【Python3网络爬虫开发实战】 requests基本用法
1. 准备工作 在开始之前,请确保已经正确安装好了requests库.如果没有安装,可以参考1.2.1节安装. 2. 实例引入 urllib库中的urlopen()方法实际上是以GET方式请求网页,而 ...
- 《Python3网络爬虫开发实战》PDF+源代码+《精通Python爬虫框架Scrapy》中英文PDF源代码
下载:https://pan.baidu.com/s/1oejHek3Vmu0ZYvp4w9ZLsw <Python 3网络爬虫开发实战>中文PDF+源代码 下载:https://pan. ...
- 《Python3网络爬虫开发实战》
推荐:★ ★ ★ ★ ★ 第1章 开发环境配置 第2章 网页基础知识 第3章 网络爬虫基础 第4章 基本库的使用 第5章 解析库的使用 第6章 数据存储 第7章 Ajax数据爬取 第8章 动态渲染页面 ...
- [Python3网络爬虫开发实战] 3.1.4-分析Robots协议
利用urllib的robotparser模块,我们可以实现网站Robots协议的分析.本节中,我们来简单了解一下该模块的用法. 1. Robots协议 Robots协议也称作爬虫协议.机器人协议,它的 ...
随机推荐
- UVa 12717 Fiasco (BFS模拟)
题意:给定一个错误代码,让你修改数据,使得它能够输出正确答案,错误代码是每次取最短的放入. 析:那么我们就可以模拟这个过程,然后修改每条边的权值,使得它能输出正确答案. 代码如下: #pragma c ...
- E20170514-ts
yield n. 产量,产额; moldule n. 模块; 组件; exception n 例外 except prep. 除…外; vt. 把…除外; 不计 accessor 存取器; ...
- 安卓小程序的一次bug调试,报错:java.lang.NullPointerException,logcat学习
做实验的时候,调试了很久后模拟器执行后,app还是会崩溃并停止运行,错误如下. 因为初学,所以也不知道怎么使用调试工具,也不懂看日志,经过学习后尝试这查看了LogCat日志上面有这样的提示: 其中引起 ...
- failed to push some refs to 'https://gitee.com/ftl_663/java-shop.git'
1.git init 2.git add . 3.git commit -m "init" 4.git remote add origin https://gitee.com/ ...
- ACM_平面、空间分割问题(递推dp)
折线分割平面 Time Limit: 2000/1000ms (Java/Others) Problem Description: 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要 ...
- magento 获得当前产品页面的产品id
$product_id = Mage::registry('current_product')->getId();
- magento CURD操作
查询: $model = Mage::getModel('mynews/mynews'); $collection = $model->getCollection(); $collection- ...
- python_数据类型基本操作(2)
概览: 第1章 基础数据类型宏观的初识第2章 int 第3章 bool 第4章 str 4.1 python体现形式 4.2 引号用法 4.3 字符串运算 4.3.1 字符串相加 4.3.2 字符串相 ...
- Suricata是什么?
不多说,直接上干货! 见Suricata的官网 https://suricata.readthedocs.io/en/latest/what-is-suricata.html snort.suirca ...
- 前端组件化(二):优化 DOM 操作
看看上一节我们的代码,仔细留意一下 changeLikeText 函数,这个函数包含了 DOM 操作,现在看起来比较简单,那是因为现在只有 isLiked 一个状态.由于数据状态改变会导致需要我们去更 ...