当使用 Selenium 和 Firefox 浏览器尝试下载 XLS 文件时遇到下载弹出窗口,主要是因为 Firefox 浏览器的默认设置会显示下载确认对话框,而不是自动下载文件。
Selenium 是一个用于自动化 Web 浏览器的工具,常用于测试和爬虫。Firefox 浏览器有特定的配置选项来控制文件下载行为。
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.service import Service
# 设置 Firefox 下载选项
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2) # 0=桌面, 1=默认下载位置, 2=自定义位置
profile.set_preference("browser.download.dir", "/path/to/download/directory")
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
# 启动浏览器
options = Options()
driver = webdriver.Firefox(firefox_profile=profile, options=options)
# 访问 URL 并点击下载链接
driver.get("your_url_here")
download_button = driver.find_element_by_id("download_button_id")
download_button.click()
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
prefs = {
"download.default_directory": "/path/to/download/directory",
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"safebrowsing.enabled": True
}
chrome_options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(options=chrome_options)
driver.get("your_url_here")
browser.helperApps.neverAsk.saveToDisk
: 指定 MIME 类型,告诉 Firefox 对这些类型的文件直接下载而不询问application/vnd.ms-excel
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
browser.download.dir
: 设置下载目录的绝对路径browser.download.folderList
: 控制下载位置的选择方式这种方法适用于:
通过正确配置浏览器选项,可以避免下载弹出窗口,实现文件的自动下载。
没有搜到相关的文章