开始讲爬取APP的相关工作,本文先将理论,下一篇文章讲实战。
qingpingshan dot com slash m slash view.php?aid 等于 383988
首先,给出答案: APP的数据肯定是可以爬取 ,只是抓取APP数据和抓取网页数据时使用的工具和方法有一定的不同。
我在某网站看到一位作者分析研究了300个APP抓包,得出如下结论:
50%的APP,通过抓包软件就可以分析出抓取参数并抓取到信息,这种往往比网站的要简单,而且反爬也没有网站多。
30%的APP,需要适当的反编译,分析出加密算法并抓取到信息。
10%的APP,已经加固,需要脱壳,然后反编译,分析出加密算法并抓取到信息。
10%的APP,通过各式各样的签名、证书、设备绑定等方法,隐藏加密算法。
总的来说,没有不能抓取的APP,只是时间成本的问题。
我们知道抓取网页数据可以直接在浏览器上查看它的HTTP请求,通过解析HTML结构,或者通过获取接口,甚至需要通过模拟访问网页的方式获取动态的数据。那么首先需要解决的问题就是如何获取APP的请求数据?答案是APP的请求数据是需要通过截获数据传输包的形式进行抓取,比如使用Fiddler截获HTTP、HTTPS的数据,使用Wireshark获取更多的封包信息(Wireshark是一个网络封包分析软件)。
—般来说,使用Wireshark+Fiddler获取软件大部分的请求数据是没有多大问题的,但是很难获取使用SSL/TLS等加密手段加密过的网络数据。
下面讲一下要抓取一个APP的数据的流程:
假设要抓简书APP的数据,请求数据主要有HTTP/HTTPS两个协议类型。这里使用Fiddler软件就可以,HTTP请求的是比较容易获取,HTTPS请求的数据需要在Fiddler上安装证书,安装过程很简单(后面章节会讲如何安装)。
操作完之后,我们在手机上简书APP的所有操作(请求)的请求数据都会显示在Fiddler上。包括HTTPH/TTPS协议数据都能获得到。
当然,在必要的时候也可以使用Wireshark获得简书APP的TCP数据。
通过以上操作可以取得大部分的数据,剩下的就是分析数据的工作。
拿到这些原始数据之后,我们还需要进行大量的清洗工作,把一些干扰的请求数据排除。
找出获取我们想要获取的数据的接口。
当我们拿到这个接口之后,大部分的情况下通过这个接口就可以直接拿到数据,但是也有很多APP也会对接口做一些加密,主要也是在一个参数上做加密。
要做爬虫这个工作,对于前后端都需要懂。
对于前端,我们在爬取网站数据时已经知道了。
对于后端,逆向分析、APP脱壳、通信协议等也是需要掌握的。
当然,很多东西也不是一撮而就的,需要在不断的实战中提升自己通关的技能(对于反爬虫的人来说就是设关卡的技能)。
Wireshark和Fiddler简单介绍:
Wireshark
Wireshark的前身是Ethereal,2006年因为其创始人Gerald Combs的跳槽而改名为Wireshark。它是一个跨平台的软件,可以在unix系列、linux、mac os、windows等多个平台上面进行网络协议抓包工作。同时他也是一个开源软件,有兴趣的话可以下载源码深入了解。更多内容可以进官网查看 https://www.wireshark.org
Fiddler
Fiddler的定位是网页调试工具,能记录所有客户端和服务器的HTTP和HTTPS请求,允许你监视,设置断点,甚至修改输入输出数据。我们还可以为Fiddler安装自己所需的插件,从而更好的利用Fiddler的强大功能。更多内容可以进官网查看 https://www.telerik.com/fiddler
网友评论