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

如何使用Selenium(-Wire)获取HTTP响应码?能否无需代理捕获网络响应

使用Selenium(-Wire)获取HTTP响应码的实现方法

基于Selenium-Wire的操作方式

Selenium-Wire会自动拦截浏览器的全量网络请求,无需额外配置抓包规则,直接遍历已捕获的请求对象即可获取对应HTTP响应码:

  • 核心逻辑:
    • 初始化Selenium-Wire驱动后访问目标页面
    • 遍历驱动实例requests属性下的所有请求条目
    • 对存在匹配响应的请求,直接读取request.response.status_code属性即可拿到对应HTTP响应码
  • 可运行示例代码:
from seleniumwire import webdriver

# 初始化Chrome驱动
driver = webdriver.Chrome()
# 访问目标页面
driver.get("https://example.com")

# 遍历提取响应码
for request in driver.requests:
    if request.response:
        print(f"请求地址:{request.url},响应码:{request.response.status_code}")
  • 实用技巧:可以通过请求的URL、资源类型、请求方法做字段过滤,精准匹配需要统计的目标请求,无需遍历全量请求。
无代理场景下的Selenium网络响应捕获方案

需要明确的是:Selenium-Wire的流量拦截能力本质是通过内置的本地MITM代理实现的,从设计架构上就依赖代理机制完成流量转发与解析。如果需要完全不使用代理捕获Selenium下的网络响应,完全可以实现,无需依赖Selenium-Wire:

  • 实现路径:基于原生Selenium提供的CDP(Chrome DevTools Protocol)调试接口,直接从浏览器内核层获取网络事件数据,不存在本地代理转发环节
  • 核心操作步骤:
    • 初始化原生Selenium驱动后,通过CDP命令执行Network.enable操作,开启网络域的事件监听
    • 注册Network.responseReceived事件的回调逻辑,事件触发时会同步返回对应请求的响应状态码、响应头等完整元数据
    • 触发页面加载、元素交互等操作后,即可在回调逻辑中收集全量网络响应数据
  • 方案特性:全程不需要启动额外的本地代理进程,不会修改浏览器的代理配置,也不会因为MITM证书信任问题触发浏览器安全告警。

提问者附的参考截图:
Selenium网络捕获逻辑参考截图


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 07:06:04