|
一、前言
最近需要获取微信小程序上的数据进行分析处理,第一时间想到的方式就是采用python爬虫爬取数据,尝试后发现诸多问题,比如无法获取目标网址、解析网址中存在指定参数的不确定性、加密问题等等,经过一番尝试,终于使用 Charles 抓取到指定微信小程序中的数据,本文进行记录并总结。
环境配置:
电脑:Windows10,连接有线网
手机:iPhone Xr,连接无线网
注:有线网与无线网最好位于同一网段下。
本文有线网网址:192.168.131.24,无线网网址:192.168.210.223
二、Charles配置与使用 1.Charles简介
Charles,一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。
Charles主要功能:
1. 支持SSL代理。可以截取分析SSL的请求。
2. 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
3. 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
4. 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
5. 支持重发网络请求,方便后端调试。
6. 支持修改网络请求参数。
7. 支持网络请求的截获并动态修改。
8. 检查HTML,CSS和RSS内容是否符合W3C标准。
----百度百科
Charles,著名的抓包工具,可以抓取移动端与pc端网络访问的所有数据,操作简单,试用期后每30分钟需要重启一次,且启动有10秒延迟,较麻烦。

2.Charles安装
Charles官网下载:https://www.charlesproxy.com/download/

下载对应版本后完成安装。
3.证书配置(重要!) Charles安装证书:
Help -> SSL Proxying -> Install Charles Root Certificate

在Windows端需要安装Charles证书,点击后如图所示(此为安装成功后截图):

点击安装证书,

点击下一步,

在此选择第二个,将所有证书都放入下列存储,点击浏览,选择受信任的根证书颁发机构。

确定后下一步。

点击完成后提示导入成功。此时需要重新进入Help -> SSL Proxying -> Install Charles Root Certificate,查看证书结果,成功时如下提示:

移动端安装证书(重要!)
移动端同样也需要安装Charles证书,具体操作如下:

选择在移动端安装证书选项,Charles提示如下:

提示需要设置手机http代理为192.168.131.24,端口为8888,然后在手机浏览器上访问 chls.pro/ssl 下载安装证书。如果IOS 版本在10以上,必须在设置->通用->关于本机->证书信任设置中打开对根证书启用完全信任。
接下来逐一操作如下:
1. 手机上打开无线局域网链接,选择链接的无线网信息页如下:

2. 在http代理中选择手动,添加Charles提示的http代bSbOjǚb7/'曢BC4(f[G[7Z?O">[/WB;/r">[V6N{N7O>[V6croF+~7s4( O">[/>4(乽н}}х}乽н}}4(4(brZj3ro疒j惚r'&*rokkR2 |