如何获取手机app内数据源信息?接下来以taptap手机app为例,获取单机排行榜数据。
配置环境 首先在电脑上安装好 mitmproxy ,安装方法可以参考官网,以下是以macOS为例。
python3 和 requests 库, openpyxl 库,国内可以用镜像安装,参考如下。
还要引入一些系统库
将手机和电脑连入同一个 wifi , 并在手机上设置网络代理(一般在设置>>WLAN>>当前详情 内)。设置代理服务器主机名为电脑的地址,服务端口为8080。
手机上用浏览器打开网页,安装证书。
数据获取
安装好 mitmproxy 之后, 直接在电脑命令终端中执行 mitmproxy 。
然后在手机上打开TapTap应用,选择发现->单机。可以在电脑终端看到许多http请求。
逐个点击进去后,选择 Response ,可以找到我们需要的数据的链接。
点击 Request 可以看到请求链接和参数,这些就是获取数据源的链接和参数。
在手机上多翻几页,多点几个链接详情,可以发现 from 参数是翻页参数。那么在 python3 中如何获取呢?参考如下
使用 requests 的 get 方法可以传入 hearders 和 参数。因为返回的是 json 可以直接调用 json() 方法解析结构。
数据分析 通过查看返回 json 里的内容和手机应用内的显示数据,大致可以找出对应数据的字段。
一起看下在 python 中如何处理的吧。
数据存储
这次我们用 Excel 保存数据,用到 openpyxl 库的处理。另外,我们还可以插入 icon 图标,可以先把图片下载到 icon 文件夹中,再读取数据时把图片插入表中。
先初始化表格第一行的内容,新建一个 icon 文件夹。
接着在读取每一条数据时,下载 icon 图片,将对应数据插入表中。
结果预览:
小结
首先通过 mitmproxy 代理获取数据链接和参数,接着对用手机的数据查找我们需要的参数,编写对应的处理代码,保存在 excel 表中。 以上就是我最新学到的东西,如果有错误或新想法欢迎留言指出!如果我学到新的东西,会第一时间分享给大家哦!
python培训:http://www.baizhiedu.com/python2019