APK包历史搜索

东方盛慧科技大约 3 分钟爬虫python

APK包历史搜索

本文档使用MarkDown语法编辑,软件开发人员一般都会,你不会的话就学习吧,不到一个小时就学会了,当然,熟练的话需要经常用。

项目背景

安卓的安装包都是以.apk结尾的,反编译安卓安装包可以看到相关代码,这对开发人员的学习或者破解相关资源都是很有帮助的,而针对某一款软件的最新软件进行反编译,不一定会有很好的效果,但是它的历史版本是可以的,所以这个项目就是开发一款专门搜索及抓取apk历史版本的工具

项目原理

应用汇市场拥有安卓apk包搜索,及历史版本查看功能,所以我们可以用代理软件,查看这些相关的接口,并用python进行调用,最终实现自己的这款神奇工具。

项目使用技术

  • Git使用
  • Python (版本采用2.7版本,采用Tkinter做GUI开发)
  • 基本的网络知识

项目地址:https://gitee.com/leixun/ApkHistorySearchopen in new window

开发顺序

任务会随着开发不断进行整理,框中有对勾为已完成,否则未完成

环境搭建
  • git环境搭建
  • 使用git克隆项目到本地
  • python环境搭建
  • PyCharm环境安装(非必须,记事本等也可以)
抓取网络接口地址

使用网络代理软件观察接口 (windows环境 使用fiddler,mac环境使用Charles,涉及配置可以百度)

  1. 安装fiddler
  2. 手机端安装应用汇客户端
  3. 手机端wifi设置手动代理为电脑ip 和 fiddler的端口,默认端口应该为:哈哈忘了,自己查吧
  4. 使用https的可能需要安装证书
  5. 点击应用汇app观察代理上是否有应用汇数据请求
接口分析
  1. 搜索接口
  2. 找旧版接口

通过搜索接口找到具体app的id,然后通过这个id组装找旧版接口的请求参数,即可获取到app的历史版本信息列表,其中就包括下载地址

接口地址都是https://mobile.appchina.com/market/api,通过上传的参数决定调用什么接口open in new window

  • 搜索接口上传参数(返回数据 见文件app.list.search.json)
参数
deviceId设备Id随便写整数即可
referer06b15137-908f-4f51-b035-e296d5fda1b6
apimarket.MarketAPI
param见文件app.list.search.json
  • app找旧版接口(返回数据见 app.pastdetails.json文件)

其它参数跟搜索接口一样

参数
param{"apiVer":23,"guid":"06b15137-908f-4f51-b035-e296d5fda1b6","imei":"869394021134371","type":"app.pastdetails","id":5341338,"packagename":"com.miui.video","start":0,"size":100,"clientTime":1511663556932,"imglevel":3,"gpuType":4,"clientVersionCode":30061345,"channel":"ac.ex.360"} //其中的id为搜索接口返回的id
接口调用

用提取好的接口尝试调用,看是否可以返回需要的数据(其数据格式是Json格式)

使用方法

  1. 安装相应的Python module
  2. 命令行输入(日志在终端显示):python apk_history_search.py 后台运行输入(日志在本地文件显示):nohup python apk_history_search.py &
软件运行效果图
软件运行效果图
上次编辑于:
贡献者: 雷勋