charles 爬取微信小程序 https 请求

背景

工商业电价都是由各个不同的电网企业自己维护然后上传到国网平台的,但是每个区域、城市的电价格式都是不一样的,所以没法通过自动化脚本来实现数据的解析和存储。我们现在采取的方式是到月底后人工半自动的方式来更新下个月的电价,费时费力,而且还容易出错。

今天花了些时间搜索了一把能提供电价信息的小程序,还真给我找到了,然后便产生了爬取 api 的想法。

安装 charles

charles 官方网站:www.charlesproxy.com/,可以自行下载

配置 http-proxy,打开菜单 Proxy -> Proxy Settings 勾选 HTTP Proxy,并输入端口号,自己定义即可,如下图

为了便于贴图,这里我要抓取的目标小程序就暂定成洛克公园吧,为啥是它?因为最近刚去打过球,它显示在列表前几位而已。我们这时尝试去抓取 PC 微信小程序的包,会发现 https 的请求显示都是 unkonwn,这是因为证书校验未通过,所以我们要安装 charles 的根证书。

安装 charles 根证书

点击菜单 Help -> SSL Proxying -> Install Charles Root Certificate 菜单,点击后会跳转到系统的钥匙串并添加一个证书,此时证书还属于不可信的状态。

双击证书,更改信任规则为始终信任

然后我们再尝试去抓取小程序的请求,可以看到 https 的请求就能正常显示了。不过这种方式也不是万能的,如果你要抓取的小程序是使用云函数开发的,你就会看到很多 mmtls 请求,这是微信的数据加密协议,我目前还没找到有什么很好的方式来对数据进行解密,不知道看到这篇文章的大佬们有没有什么方案。

手机抓包

原理类似,和电脑连入同一个网络中,然后在手机的网络配置成设置代理地址为电脑 ip,端口为 8888。

手机安装 SSL 证书,步骤如下:

Help -> Install Charles Root Certificate on a Mobile Device or remote Browser,点击之后系统会有一个弹窗,点击确定

手机上打开 chls.pro/ssl 下载证书文件,然后安装,安装方案不同的手机操作可能不太一样,可以在设置中输入CA证书,然后找到下载好的证书文件进行安装即可。

证书安装好后,在手机上打开网页或者是 app,就能在电脑上看到数据请求了。

其他抓包工具

  • burp suite pro + proxifier
  • fiddler
  • wireshark
  • anyproxy
相关推荐
快乐肚皮2 小时前
一文了解XSS攻击:分类、原理与全方位防御方案
java·前端·xss
保护我方头发丶2 小时前
ESP-wifi-蓝牙
前端·javascript·数据库
想学后端的前端工程师3 小时前
【Flutter跨平台开发实战指南:从零到上线-web技术栈】
前端·flutter
老王Bingo3 小时前
Qwen Code + Chrome DevTools MCP,让爬虫、数据采集、自动化测试效率提升 100 倍
前端·爬虫·chrome devtools
董世昌413 小时前
什么是扩展运算符?有什么使用场景?
开发语言·前端·javascript
来杯三花豆奶3 小时前
Vue 3.0 Mixins 详解:从基础到迁移的全面指南
前端·javascript·vue.js
想学后端的前端工程师4 小时前
【React性能优化实战指南:从入门到精通-web技术栈】
前端·react.js·性能优化
白兰地空瓶4 小时前
React Hooks 深度理解:useState / useEffect 如何管理副作用与内存
前端·react.js
cike_y4 小时前
JSP内置对象及作用域&双亲委派机制
java·前端·网络安全·jsp·安全开发
巴拉巴拉~~5 小时前
KMP 算法通用进度条组件:KmpProgressWidget 多维度 + 匹配进度联动 + 平滑动画
java·服务器·前端