安装
Windows推荐使用Fiddler,Mac推荐使用Charles。两个工具均属于收费应用,请自行百度下载地址。由于笔者使用的是Mac,接下来以Charles为例来做说明,Fiddler与其大同小异。
Charles配置
首先我们打开Charles,界面如下: 此时没有任何信息,接下来我们点击Proxy->Proxy Settings,界面如下: 然后我们来找到电脑的IP地址,命令行输入ifconfig或者在系统偏好设置->网络中查看
iPhone配置
切记:先将手机上开启的VPN关掉。(由于截图上含有VPN标记,特此提醒。) 将iPhone与电脑连接到同一网络下,然后打开无线局域网,点击网络列表右侧的i ,如图所示: 然后点击配置代理->手动,将刚才电脑上的ip(192.168.1.111)和端口(8888)填入代理,如图所示: 点击储存。接下来我们用iPhone随意进行网络请求,再来查看Charles,会弹出如下界面: 点击Allow,即可进行网络抓包。
Android手机配置
注:这一步骤与上一步骤互斥,你用哪个操作系统的手机就看哪一步。 首先将Android手机(以小米手机为例)和电脑连接到同一网络下,打开设置->WLAN,点击所连接的WiFi右侧的>,进入代理设置页面: 然后我们就进入代理设置页面,设置方法与iPhone相似,如图: 点击右上角的✔️进行储存。随意进行网络请求,再去看Charles会弹出如下界面: 点击Allow即可进行网络抓包。
HTTPS配置(可选)
上述步骤配置完成之后,可能我们只能进行HTTP的请求,HTTPS的请求返回的都是UNKNOWN,这个时候需要我们进行额外配置,选中Proxy->SSL Proxying Settings: 然后将443端口添加进去,如图: Host的*代表任意地址。 然后点击Help -> SSL Proxying -> Install …. Remote Browser,如图所示: 然后Charles会弹出如下界面: 手机浏览器输入chls.pro/ssl进行证书的安装:
- iPhone的安装:
- Android的安装: 注:小米手机请勿使用自带浏览器下载! 进入设置,选择更多设置->系统安全->加密与凭据->从存储设备安装,界面如下: 红色框选的就是我们刚才下载的证书,点击它,可能会让你输入手机密码,然后弹出如下界面: 证书名称可以随意取,这样我们就把证书安装成功了,接下来就可以抓包HTTPS的请求了。
网络抓包
经过iPhone配置或者Android配置步骤我们就可以进行网络抓包了,此时Charles界面如下:
- ①是清除网络请求按钮,由于我们进行网络请求的时候会比较杂乱,使用它可以进行清空。
- ②是网络请求列表区域,展示了我们所有进行的网络请求。
- ③可以根据关键字进行网络请求过滤,避免展示不必要的网络请求。
获取今日头条的文章
首先将刚才进行的网络请求清空,然后用手机打开今日头条,看到界面如下: 然后我们再去看Charles,界面展示如下:
- ①区域是我们进行的网络请求列表,我选中的蓝线是请求的地址。
- ②区域是网络请求的参数,这些参数有些是加密的,有些参数是不需要的,在此就不做深入分析了,有兴趣的小伙伴可以自行研究一下。
- ③区域即我们进行网络请求的结果,由于手机的网络接口都是有JSON进行传输的,因此这里使用JSON Text进行查看,可以看到这里所获取的数据与手机端展示的数据是一致的。
结语
大功告成,这就是利用Charles进行网络抓包的步骤,接下来我们利用获取到地址和参数,就可以用自己的脚本去调用这些api了,这里不再讨论了。
欢迎在评论区留下您的见解~