大家好,我是皮皮。今天给大家分享一个简单的Androidapp数据分析和抓取方法。以抖音为例,我们要抓取抖音的热榜数据。要知道这个数据是没有网页版的,只能从手机端获取。首先我们需要安装charles抓包APP数据,它是一款收费的抓包修改工具,简单易用,易于控制数据请求,修改简单,抓包数据启停方便等。有网上也有中文版,下载地址http://www.zdfans.com/html/42074.html,一路默认安装就可以了。安装完成后设置代理,点击代理-代理设置。然后在手机上设置代理,如下图:在保证手机和电脑在同一个局域网的情况下,代理服务器的主机名设置为电脑的ip地址,端口设置为8888。最后分别在电脑和手机上安装证书。电脑端安装方法:依次点击Help—SslProxy—InstallCharlesRootCertificate,如下图安装。移动端安装方法:帮助-ssl代理-移动设备或远程浏览器安装charles根证书。然后在模拟器浏览器中输入chls.pro/ssl,会自动下载手机上的证书。最后在手机上点击设置--安全--从SD卡安装。为证书命名并单击“确定”以成功安装它。打开charles,然后打开抖音app的热榜界面。在charles中很容易找到数据接口,一次返回50条数据,如下图。其url信息如下图所示。该接口此时只能返回热点数据。要返回新数据,必须更改参数信息。但是App端的数据接口参数比较复杂,这里就不深入分析了。为了解决这个问题,我们可以使用appium定时模拟控制手机,然后使用mitmproxy拦截数据(网上有很多关于appium和mitmproxy的介绍和安装的教程,所以我这里不再赘述)。Appium脚本如下图所示:这个自动化测试脚本比较简单,主要是反复获取最新的热点信息。Mitmproxy脚本如图:有4点需要注意:1、使用mitmproxy抓包前,先将手机代理ip端口设置为8080,设置方法同上;2、如果要在这个脚本中运行外部函数,必须加上前两行,否则会报错;3、如果脚本中flow.request.url中的url为数据流判断条件,如果url在数据流的url请求数据中,则判断该数据为抖音app热点数据;4.最后在脚本所在路径运行如下程序:最后运行appium自动化测试脚本,就大功告成了。本文转载自微信公众号“IT分享者”,可关注下方二维码。转载本文请联系IT分享者公众号。
