目录
大部分 App 使用的数据通信协议也是基于 HTTP/HTTPS 的,App 内部一些页面交互和数据通信的背后也都有对应的 API 来处理,例如某个页面呈现的数据几乎都来源于某个 API。其基本过程可以类比网页中的 Ajax 请求和数据渲染,其基本过程是 App 向服务器发起一个 HTTP/HTTPS 请求,然后接收并解析服务器的响应内容,之后将得到的数据呈现出来。
在网页中,我们可以借助浏览器开发者工具中的 Network 面板看到网页中产生的所有网络请求和响应内容,然而 App 怎么办呢?要想拦截 App 中的网络请求,就得用到抓包工具了,例如:Charles、Fiddler、mitmproxy 等,我们可以通过这些工具拦截 App 和 API 通信的请求内容和响应内容,如果能从中找到一定的规律,就可以用程序直接构造请求来模拟 API 的请求,从而完成数据爬取。
一、抓包工具的分类
- 全局抓包工具:Http v7、Http debugger pro 用来抓电脑中程序中发出去的包 比如:Java语言发出的包
- 代理抓包工具:Charles、Fiddler 客户端 — 代理服务 — 服务端
- VPN抓包工具:HttpCanary(手机抓包工具) 和代理抓包工具差不多 能