You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python环境下Selenium 4.12拦截HTTP请求的方法咨询(低代码改动)

Selenium 4.12(Python)拦截HTTP请求的方法思路

一、利用Selenium 4原生DevTools Protocol(CDP)

这是Selenium 4自带的方案,改动量极小,无需额外依赖第三方库。

  • 核心思路:Selenium 4直接集成了Chrome DevTools Protocol,通过driver.execute_cdp_cmd()调用CDP的网络相关命令,比如Network.enable开启监控,Network.requestWillBeSent事件监听请求触发,从事件参数中提取请求头、请求体信息。
  • 改动方式:仅需在现有代码初始化driver后,添加几行CDP命令的调用逻辑,完全不影响原有业务流程代码。
  • 资源方向:参考Chrome DevTools Protocol官方文档的Network域接口,重点关注请求事件返回的参数结构,里面包含完整的请求元数据。

二、使用适配Selenium 4的Selenium Wire库

专门针对Selenium的请求拦截工具,对现有代码侵入性极低。

  • 核心思路:Selenium Wire是原生Selenium的增强替代库,用法和原生Selenium几乎一致,底层通过代理机制捕获所有HTTP/HTTPS请求,提供直接访问请求头、请求体、响应内容的API。
  • 改动方式:只需将原有导入的from selenium import webdriver替换为from seleniumwire import webdriver,后续driver的调用逻辑完全不变,就能通过专属API获取所有请求的详细信息。
  • 注意点:确保安装的是适配Selenium 4的最新版Selenium Wire,避免版本兼容问题。

三、集成MitmProxy等第三方代理工具

适合需要复杂请求处理的场景,改动量中等。

  • 核心思路:启动本地MitmProxy代理服务,配置Selenium的浏览器(Chrome/Firefox)使用该代理,MitmProxy会拦截所有经过的请求,通过其Python脚本API可以自定义捕获请求的逻辑。
  • 改动方式:在现有代码中添加浏览器的代理配置(比如ChromeOptions设置--proxy-server),同时编写简单的MitmProxy脚本捕获请求信息,原有业务代码无需大幅修改。
  • 优势:除查看请求内容外,还支持修改请求/响应,适合调试复杂交互场景。

内容的提问来源于stack exchange,提问作者Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 15:40:01