鉴于目前会常用到爬虫来采集一些数据以支持和解决问题,开贴记录验证出来的好用的methods、tools、problems 和 solutions。
之前有个需求抓b站的数据,由于当时并不会从手机app抓包,而且时间较紧急,没有工夫来细细研究,就只能尽量从网页端来对数据进行爬虫。所幸,大部分的数据网页端都很完备。现在有空了,来研究一下如何从手机客户端的B站app进行抓包。٩(•̤̀ᵕ•̤́๑)
APP数据抓取:
50%的app,通过抓包软件就可以分析出抓取参数并抓取到信息。
30%的app,可能需要适当的反编译,分析出加密算法并抓取到信息。
10%的app,可能加固,需要脱壳,然后反编译,分析出加密算法并抓取到信息。
10%的app,通过各式各样的签名,证书,设备绑定等方法,隐藏加密算法。
总的来说,没有不能抓取的app,只是时间成本的问题。
抓包
抓包有代码经验或APP开发的同学都很容易理解,其实很多APP,走的都是webservice通讯协议的方式,并且由于是公开数据,而且大部分是无加密的。所以只要对网络端口进行监测,对APP进行模拟操作,即可知道APP里面的数据是如何获取的。我们只需要写代码模拟其请求,无论POST还是GET,即可得到该请求所返回的信息。再通过对返回的信息结构化解析,即可得到我们想要的数据。
HOOK技术
HOOK技术是一种走操作系统内核的技术,由于安卓系统是开源的,所以可以借助一些框架修改内核,从而实现你要的功能。HOOK的形式,我们走的是Xposed框架。Xpose