Python 络爬虫,Appuim+夜神模拟器爬取得到APP课程数据

一、背景介绍

随着生产力和经济 会的发展,温饱问题基本解决,人们开始追求更高层次的精神文明,开始愿意为知识和内容付费。从2016年开始,内容付费渐渐成为时尚。 罗辑思维创始人罗振宇全力打造“得到APP”就是这样一款优质的可以听音频、学通识课程、看电子书、看直播、记笔记的知识付费平台,得到汇聚罗振宇、薛兆丰、梁宁、万维钢、吴军、香帅、宁向东等各个领域的专家学者的精品课程,致力于服务所有终身学习者。

很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。

很多已经做案例的人,却不知道如何去学习更加高深的知识。

那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!

QQ群:127341871

 

二、APP爬取思路和方案选择

2.1 思路一

通过抓包软件对APP进行抓包分析, 这种方式可以看到 App 在运行过程中发生的所有请求和响应。得知接口之后可以通过设置合适的请求头和各种参数来发送HTTP或者HTTPS请求接口,接口返回的数据就是想要数据了。

这种方式一旦实现,基本上算是一劳永逸的,除非接口和返回数据定义发生变化。但是如果一些动态参数设置不对,访问接口则不能得到任何数据,换句话说,只要无法破解参数,这条路就是死路一条。

2.2 思路二

通过自动化测试工具模拟手工操作APP进行数据的爬取。通过向自动化测试工具(例如Appium)发送操作指令,驱动设备完成点击、输入、滑动等各种操作,分析页面数据完成数据爬取。

这种方式相比于方式一而言,并不会受限于请求头和动态参数,只要是人工可以操作的,自动化测试工具都可以帮助我们进行完成,而所有的APP的所有功能所有页面用户都可以进行操作,意味着APP内所有的数据都可以拿到。

2.3 方案选择

本人在尝试使用方式一的过程中,抓包分析接口之后发现有些动态参数无法搞定,故放弃该方式。采用方式二进行爬取。

三、准备工作

3.1 Python环境的搭建

下载Python安装包: 官方下载地址

安装:注意勾选“Add Python 3.8 to PATH”

3.2 Android SDK安装和环境变量配置

下载Android Studio进行安装Android SDK: 下载地址

默认安装或者选择路径进行安装即可

环境变量的配置:

3.3 夜神模拟器安装和得到APP安装

夜神模拟器下载: 夜神模拟器

夜神模拟器安装:默认安装即可。

得到APP下载: 得到APP下载

将下载的apk安装包拖动到夜神模拟器中进行安装。

3.4 Appium安装

Appium下载地址: Appium下载

安装:默认安装到C盘即可。

配置环境变量:

四、爬取核心

4.1 Appium启动APP

使用Appium启动APP时需要配置参数:platformName、deviceName、appPackage、appActivity。配置完成之后Appium会自动查找手机上面的包名和入口类,然后将其启动。

  • 获取appPackage和appActivity的方法:

最简单有效的方法为使用命令行获取。使用Appium客户端连接到APP,将APP打开到需要获取appActivity的页面,执行下面命令:

 

代码如下:

这段代码的作用是使用Appium启动得到APP并进入主页。如图:

 

4.2 点击“课程”按钮进入课程页

使用Appium定位元素

 

 

 

点击选中左边“课程”按钮,可以看到这个元素的源代码,通过xpath定位:

course = self.driver.find_element_by_xpath(“//android.widget.TextView[@text=’课程’]”) # 课程

Appium可以进行点击的操作。点击课程按钮的代码如下: course.click()

4.3 定义课程数据类

课程页面如图所示:

 


4.4 获取所有课程数据

通过Appium分析页面的源代码,可以很容易解析得到课程的各种数据。

 

代码如下:

当获取完一屏的数据,需要向上滑动继续获取数据。

Appium滑动API说明:

当无法滑动的时候,数据就获取完成了。

4.5 课程数据写入Excel

五、总结

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树 络爬虫urllib211387 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年9月25日
下一篇 2019年9月25日

相关推荐