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

如何使用Selenium和Python在Chrome中点击下载指定链接的音频文件

你定位不到元素的核心原因:Chrome内置媒体播放器的所有控件都封装在Shadow DOM结构中,普通的DOM定位方法无法直接访问,另外你代码中定位video标签的逻辑错误,当前页面是音频文件,对应标签是audio而非video。

下面给两种可行的实现方案:

方案1:直接通过音频直链下载(最简便)

你已经获取到了音频文件的直接访问地址,无需操作Selenium模拟点击,直接用requests库请求保存即可,性能和稳定性都远高于模拟页面操作,代码示例:

import requests

audio_url = "https://www.valmiki.iitk.ac.in/sites/default/files/audio/1-1-1.mp3"
# 替换为你要保存的本地路径
save_path = "./1-1-1.mp3"

resp = requests.get(audio_url)
with open(save_path, "wb") as f:
    f.write(resp.content)

方案2:通过Selenium模拟点击播放器控件下载

如果必须要通过操作页面控件实现下载,需要先穿透Shadow DOM定位对应的按钮,完整实现代码如下:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

s=Service(ChromeDriverManager().install())
options = webdriver.ChromeOptions()
preferences = {'download.default_directory': '替换为你的本地下载目录路径'}
options.add_experimental_option('prefs', preferences)
driver = webdriver.Chrome(service=s, options=options)
driver.maximize_window()

driver.get('https://www.valmiki.iitk.ac.in/sites/default/files/audio/1-1-1.mp3')
wait = WebDriverWait(driver, 10)

# 第一步:定位audio元素,获取它的shadow root
audio_elem = wait.until(EC.presence_of_element_located((By.TAG_NAME, "audio")))
shadow_root = driver.execute_script('return arguments[0].shadowRoot', audio_elem)

# 第二步:在shadow root中定位三点更多选项按钮
# 如果你的Chrome是英文界面,把aria-label值改为"More options"
more_btn = shadow_root.find_element(By.CSS_SELECTOR, 'button[aria-label="更多选项"]')
more_btn.click()

# 第三步:定位下载按钮点击
# 如果你的Chrome是英文界面,把aria-label值改为"Download"
download_btn = shadow_root.find_element(By.CSS_SELECTOR, 'text[aria-label="下载"]')
download_btn.click()

# 等待下载完成后可自行添加关闭逻辑
# driver.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:45:02