一:前言
最近需要做一些爬虫工作的前置梳理,流程梳理见下图所示。核心是对已上线的微信小程序,进行接口抓取。
在正式开始之前,提一下实践过程遇到的问题。之前的思路是Whistle(抓接口)+Proxifier(代理服务)来抓取window端的微信小程序的接口。受限于微信的安全策略,抓取失败。尝试降低微信的版本,再进行接口抓取,发现没有奏效。
若遇到类似的问题,不妨试试Charles。下文实践基于window系统,PC客户端微信(版本:3.9.8.15)。


二:下载安装Charlets
arduino
下载地址:https://www.charlesproxy.com/download/

选择对应安装包,下载完成后一路next安装好了。
三:Charles破解激活
Charles安装完成后,有30天的游客使用期限。可以使用下面的方法获取激活key(仅做学习用,请勿用于商业行为)
ruby
激活码工具:https://www.zzzmode.com/mytools/charles/
打开激活工具的页面后,输入name,点击生成,就会自动计算出激活key


打开Charles,填入刚刚的name和生成的激活key,Charles重新启动后就会显示已注册状态。

填一下name和key

四:安装根证书
默认情况下,charles不能解析https协议的接口,里面的请求和响应数据都是乱码格式,需要下载ssl证书,来获取里面的数据。点击help,按照下图的步骤走就可以。

点击安装证书

- 当前用户:证书只会对当前登录的用户有效。这意味着只有当前用户登录的会话中的应用程序可以信任该证书。如果你的电脑只有你一个人使用,或者你不希望其他用户受到证书安装的影响,可以选择安装到当前用户。
- 本地计算机:证书会对所有登录到该电脑的用户有效。如果你是管理员,并且希望所有用户都能够信任该证书,或者你需要在系统服务中使用该证书,那么应该选择安装到本地计算机。

五:信任证书
证书的存储位置一定要选受信任的根证书颁发机构。不然后面会出现无法抓到接口的问题。




六:配置代理信息
在抓取接口之前,还需要配置一下代理信息。点击proxy,选中Proxy Settings


Host和Port都为*,正则表达式为匹配所有,再点击"OK"按钮

七:获取web端的接口
配置完成代理信息后,重启Charles,尝试获取web端的接口。浏览器随便打开一个网页,可以Charles已经在帮我们抓取网页的接口了。


八:获取pc客户端的接口,以PC客户端的微信小程序为例
微信打开一个小程序,操作后查看Charles,可以看到接口成功抓到了。

九:获取手机端的接口,以Ios为例
点击修改网络,代理选择手动配置

输入IP地址及端口号,点击保存

允许连接请求

手机打开浏览器访问任意网址,可以看到已经抓取到接口信息了。

十:更多功能
设置目标规则
方法一: Charles抓取的列表中,使用下面的方法,可以让这些我们不关注的接口在列表中隐藏


方法二: 在Filter输入要抓取的地址
