如何在Selenium的Chromedriver中禁用各类视频?
Selenium + ChromeDriver 全类型视频禁用方案
以下方案均直接阻止视频资源加载,而非仅停止自动播放,可彻底避免视频占用带宽、拖慢自动化执行效率:
方案1:添加Chrome命令行启动参数
直接通过启动开关禁用浏览器视频相关核心能力:
--disable-video:全局禁用Chrome视频播放功能,可拦截绝大多数常规视频加载--disable-media-source:禁用Media Source Extensions协议,可拦截主流的流媒体(m3u8、flv流等)视频加载--disable-accelerated-video-decode:禁用硬件视频解码,进一步阻止视频解码流程--disable-plugins:禁用所有插件,拦截依赖插件加载的视频内容
方案2:配置浏览器偏好设置
通过Chrome profile配置强制禁用视频内容权限:
from selenium import webdriver chrome_options = webdriver.ChromeOptions() prefs = { # 2代表禁用权限,直接拦截视频资源加载 "profile.default_content_setting_values.video": 2, "profile.managed_default_content_settings.video": 2, "profile.default_content_setting_values.media_stream": 2 } chrome_options.add_experimental_option("prefs", prefs) # 可搭配启动参数同时生效 chrome_options.add_argument("--disable-video") chrome_options.add_argument("--disable-media-source") driver = webdriver.Chrome(options=chrome_options)
上述为Python示例,Java、JS等其他语言的Selenium实现逻辑一致,仅语法存在差异。
方案3:CDP协议拦截所有视频请求(最彻底)
如果上述方案仍有漏网的视频资源,可通过Chrome DevTools协议主动拦截所有视频类网络请求,直接返回失败,完全不消耗带宽:
from selenium import webdriver chrome_options = webdriver.ChromeOptions() chrome_options.set_capability("goog:loggingPrefs", {"performance": "ALL"}) driver = webdriver.Chrome(options=chrome_options) # 开启网络拦截 driver.execute_cdp_cmd('Network.enable', {}) # 配置拦截规则:匹配所有常见视频格式的资源请求 driver.execute_cdp_cmd('Network.setBlockedURLs', { "urls": [ "*/*.mp4", "*/*.webm", "*/*.flv", "*/*.m3u8", "*/*.ts", "*/*.avi", "*/*.mov", "*/*.wmv", "*/*.rmvb", "*/*.mkv" ] })
内容的提问来源于stack exchange,提问作者superabsorbent polymer
相关产品推荐
相关产品推荐

