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

如何使用Selenium获取网站加载的全部外部资源 等效ChromeDevTools > Network面板内容

实现Selenium获取网页全部外部加载资源的方案

可行性说明

可以实现,效果和Chrome DevTools Network面板完全一致。Selenium支持调用Chrome DevTools Protocol(CDP)接口,采集所有网络请求的全量数据,包含资源URL、类型、状态码、加载耗时、大小等所有面板展示的字段。

最简实现步骤(Python示例)

  • 前置依赖:安装对应版本的selenium、Chrome浏览器以及ChromeDriver
  • 第一步:启动Chrome时开启性能日志采集配置
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import json

chrome_options = Options()
# 配置开启性能日志采集权限
chrome_options.set_capability("goog:loggingPrefs", {"performance": "ALL"})
driver = webdriver.Chrome(options=chrome_options)
  • 第二步:访问目标页面后过滤提取资源加载记录
# 替换为你要采集的目标网站地址
driver.get("https://example.com")

# 获取全部性能日志并筛选资源请求
raw_logs = driver.get_log("performance")
resource_list = []

for log_entry in raw_logs:
    log_content = json.loads(log_entry["message"])["message"]
    # 匹配资源加载完成的事件,也可根据需求匹配请求发起、加载失败等其他事件
    if log_content["method"] == "Network.responseReceived":
        params = log_content["params"]
        response_info = params["response"]
        resource_list.append({
            "type": params["type"],
            "url": response_info["url"],
            "status": response_info["status"],
            "size": response_info.get("encodedDataLength", 0),
            "response_time": response_info.get("responseTime", 0)
        })
  • 第三步:输出结果并销毁驱动
# 打印所有采集到的资源信息
for item in resource_list:
    print(item)
driver.quit()

注意事项

  • 如果需要采集未完成加载、加载失败的资源记录,可以同时监听Network.requestWillBeSent、Network.loadingFailed两类事件,覆盖所有请求场景
  • 如需获取资源的响应体内容,可以通过日志中拿到的requestId,调用Network.getResponseBodyCDP接口提取
  • 上述配置仅适配Chrome/Chromium内核浏览器,其他内核浏览器需要调整对应的日志采集参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:18:02