[python爬取微信小程序的示例]
本项目利用 Mitmproxy 捕获并解析特定微信小程序的数据请求,实现了自动化数据提取与存储。脚本能够动态识别所有数据字段,并根据 id 字段进行持久化去重,确保数据的完整性和唯一性。
- 自动化抓包:通过 Mitmproxy 拦截 PC 端微信小程序的 HTTPS 请求。
- 代理链支持:支持设置上游代理,可与 VPN 等其他代理工具协同工作。
- 动态数据提取:自动从返回的 JSON 数据中解析所有字段,无需手动配置。
- 持久化去重:脚本启动时会读取已有数据,确保在多次运行中不会保存重复记录。
- CSV 格式存储:将抓取到的数据保存为通用的
transactions.csv文件。
-
环境准备:
- 确保已安装 Python 3.11+ 和 uv (或其他虚拟环境工具)。
- 安装 Mitmproxy:
pip install mitmproxy
-
证书配置:
- 运行
mitmweb初次生成证书。 - 将
mitmproxy-ca-cert.cer证书安装到 Windows 的 "受信任的根证书颁发机构"。
- 运行
-
运行脚本:
- 根据你的网络环境,在终端中运行以下命令(如果不需要经过 VPN 代理,可以去掉
--mode upstream部分):
mitmweb --mode upstream:http://127.0.0.1:7897 -s main.py
- 根据你的网络环境,在终端中运行以下命令(如果不需要经过 VPN 代理,可以去掉
-
开始抓取:
- 在 Windows 系统设置中,将网络代理设置为
127.0.0.1:8080。 - 打开目标微信小程序并进行查询操作,脚本将自动开始工作。
- 在 Windows 系统设置中,将网络代理设置为
- 脚本会在
main.py相同目录下生成或更新transactions.csv文件。 - 文件包含所有从接口获取的字段,并已根据
id去重。