最近有个小功能需要一些基础数据,找了一下在小程序上有发现,暂时还没找到他的网站,想着把这些数据爬一些下来做为基础数据使用的。本来还想着直接反编译小程序的,没想到微信变更了加密方式,以前反编译的路子走不通了,只好尝试抓下数据看能不能拿到了。
通过anyproxy 抓取 https 数据包
准备
- anyproxy
- 手机,我的是iphone
先说我碰到的问题
全都是按照步骤来的,也不麻烦,本地和手机都安装了证书,但是死活抓不到,或者抓到的都是加密数据,其实你只差一步:设置->通用->关于本机->证书信任设置->针对跟证书启用完全信任
,将对应的证书进行完全信任,以上问题就解决啦。
步骤
1. 安装 anyproxy
npm install anyproxy -g
2. 启动 anyproxy
anyproxy -i
//启动针对https的抓包
3. 访问 8002
打开浏览器输入:http://localhost:8002
即可看到anyproxy的页面。
4. 安装证书
点击左侧RootCA
,然后点击下载,下载后点击安装,将证书安装完成后,安装的时候选择受信任的根证书颁发机构
.
然后手机扫码,或者直接在手机上访问 http://192.168.137.1:8002/fetchCrtFile
,将证书下载然后安装。
这里有个前提,手机和电脑在同一个网络内,我这边是直接电脑开启热点,手机访问。
5. 代理设置
打开手机,连到Wifi ,进入后在底部配置代理
进入,服务器输入电脑的IP地址(通过ipconfig
查看),端口输入:8001
, 存储。
6.信任证书
找到以下位置:设置->通用->关于本机->证书信任设置->针对跟证书启用完全信任
,信任安装的证书。
7. 开始抓取
这里还有个问题,anyproxy 一会不用就不抓了,得暂停再启用...不知道是哪里设置问题。