charles在mac上抓取本地python请求

1.首先打开charles,在Proxy中打开macOS Proxy,这样才能抓取本地请求

2.python代码中,post/get请求中添加verify = False忽略ssl认证,否则会报Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:646)')错,如下

res = requests.post(url = self.url,headers = headers,data = json.dumps(data),verify = False)

参数: verify:Ture/False,默认是Ture,用于验证SSL证书开关

3.添加verify = False后仍会报如下警告

InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: 

在请求语句前添加如下代码即可解决

### 使用 Charles 抓包微信小程序网络请求 #### 安装和配置 Charles 证书 为了能够成功抓取微信小程序的 HTTPS 请求,首先需要安装并信任 Charles 的根证书。具体操作如下: - 在 Mac 上启动 Charles 并进入菜单 `Help -> SSL Proxying -> Install Charles Root Certificate`[^2]。 - 这一过程会自动跳转至系统的钥匙串应用,在其中可以找到新添加的 Charles 根证书。 - 对该证书双击后修改其信任规则为“始终信任”,从而允许 Charles 解密 HTTPS 流量。 #### 配置 Charles 的 SSL 代理功能 完成上述步骤后,需进一步启用 Charles 的 SSL 代理功能以便拦截特定域名下的流量: - 前往 Charles 的 `Proxy` 设置页面开启 SSL 代理选项。 - 添加目标主机名(通常是与微信服务器通信的相关地址)以及对应的端口号(一般为 443)。这一步骤对于过滤无关流量至关重要[^1]。 #### 移动设备上的设置 如果计划对 iOS 设备上运行的微信小程序进行分析,则还需调整手机的 Wi-Fi 网络参数指向本地运行中的 Charles 实例作为 HTTP/HTTPS 流量转发中介: - 将 iPhone 或 iPad 接入同一局域网内的无线网络; - 修改所选 WiFi 下 DNS 和 HTTP PROXY 字段值匹配电脑 IP 地址及指定监听端口 (默认8888)[^3]; #### PC端微信环境特殊处理 针对PC版微信客户端内部加载的小程序实例,由于它们通常依赖于更严格的安全机制比如TLS版本控制或者HSTS策略等原因使得常规方法未必奏效时可考虑以下补充措施: - 启用开发者工具查看是否存在额外可用接口供调试用途; - 如果遇到基于腾讯自家mmtls协议封装后的难以解析的数据流,则暂时缺乏通用解决方案除非获得官方支持文档说明如何正确实现反序列化流程[^4]. ```python # 示例代码展示如何自动化部分重复劳动(伪代码性质) import subprocess def install_charles_cert(): """模拟执行命令行脚本来简化手动干预""" try: result = subprocess.run(['open', '-a', 'Keychain Access'], check=True) print("Successfully opened Keychain.") except Exception as e: print(f"Error occurred: {e}") install_charles_cert() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值