今天,我想和大家分享一个简单的Android应用程序数据分析和方法捕获。以抖音为例,我们想捕捉抖音的热门榜单数据
要知道,这个数据是没有网页版的,只能从手机入手。
首先我们需要安装charles Grab APP的数据,这是一款付费的工具,好用,数据请求容易控制,修改简单,数据抓取暂停方便。网上也有中文版,下载地址是http://www.zdfans.com/html/42074.html,所以默认一路安装就ok了。
要在安装后设置代理,请单击代理——代理设置。
然后在手机上设置代理,如下图所示:
在手机和电脑在同一个局域网的情况下,代理服务器的主机名设置为电脑的ip地址,端口设置为888。
最后将证书分别安装在电脑和手机上。
在电脑上安装方法:点击帮助——ssl代理——安装查尔斯根证书,安装如下图所示。
手机安装方法:帮助——ssl代理3354在移动设备或远程浏览器上安装查尔斯根证书。
r />
再在模拟器浏览器中输入chls.pro/ssl,会自动下载手机端证书
最后再手机端依次点击设置——安全——从SD卡安装。
为证书命名,点击确认就安装成功了。
打开charles,然后打开抖音app的热点榜界面,在charles很容易就找到了数据接口,一次就返回了50条数据,如下图所示。
它的url信息如下图所示。
此接口只能返回这一时刻的热点数据,要想返回新的数据,就要变换参数信息,但是App端的数据接口参数都比较复杂,这里我们不再深入分析。
为了解决这一问题,我们可以用appium定时模拟操控手机,然后用mitmproxy把数据拦截下来(关于appium、mitmproxy的简介与安装网上有很多教程,这里不再赘述)
Appium脚本如下图所示:
这个自动化测试脚本比较简单,主要是重复获取热点最新信息。
Mitmproxy脚本如图:
有4点需要注意的地方:
1.用mitmproxy抓包前,先把手机代理ip端口设置为8080,设置方法同上;
2.要想在此脚本运行外置函数,必须加上前两行,要不然会出错;
3.脚本中if url in flow.request.url为数据流判断条件,如果url在该数据流的url请求数据中,则判断该数据为抖音app热点数据;
4.最后在脚本所在路径运行以下程序:
最后再运行appium自动化测试脚本,就大功告成了。
为了帮助大家更轻松的学好Python开发技术,Python爬虫,Python数据分析,人工智能等技术,这里给大家分享一套系统教学资源,,关注我头条号,然后私信我‘2020’几个数字免费领取。还有专业的老司机免费答疑!(注意私信我关键字不要写错,可以复制)
<