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

如何使用Python和Selenium点击视频页面的下载按钮?

用Python + Selenium 点击视频下载按钮的解决办法

针对浏览器原生视频控件的下载按钮

浏览器原生的video控件(比如Chrome),当视频允许下载时,控件上会显示下载图标。但原生控件的DOM由浏览器生成,不同浏览器结构有差异,以下是Chrome环境下的操作步骤:

  • 等待视频元素加载完成,确保控件可交互
  • 鼠标悬停到视频上触发控件显示(部分浏览器控件默认隐藏)
  • 定位下载按钮并点击

代码示例:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化浏览器
driver = webdriver.Chrome()
driver.get("你的目标页面URL")

# 等待视频元素加载
video = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.TAG_NAME, "video"))
)

# 悬停到视频上显示控件
ActionChains(driver).move_to_element(video).perform()

# 定位下载按钮(Chrome中按钮的title通常是"下载",可根据实际DOM调整xpath)
download_btn = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, "//button[@title='下载']"))
)
download_btn.click()

# 关闭浏览器
driver.quit()

更可靠的替代方案:直接下载视频源

如果点击控件按钮遇到定位困难,直接获取视频的真实下载链接会更稳定,还能避开修改HTML导致的视频加载问题:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import requests

driver = webdriver.Chrome()
driver.get("你的目标页面URL")

# 获取source标签里的视频链接
source = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.TAG_NAME, "source"))
)
video_url = source.get_attribute("src")

driver.quit()

# 用requests下载视频
with open("downloaded_video.mp4", "wb") as f:
    f.write(requests.get(video_url).content)

注:如果视频链接带防盗链,可从Selenium的driver中提取当前请求的Cookie、Referer等头信息,添加到requests的请求参数里。


内容的提问来源于stack exchange,提问作者raul g h

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 14:07:11