Python中Chrome headless模式无法下载文件怎么办?
程序为在指定页面点击下载图标 下载文件
chrome 为弹出模式的时候正常运行
但是开启了无界面以后 显示有点击下载图标 但是没有文件下载 也没有提示错误
请问 有办法解决吗 还是这个模式就没有下载功能
求大手子指教 卡了好几天了
Python中Chrome headless模式无法下载文件怎么办?
4 回复
什么系统啊
这个问题我遇到过,headless模式下Chrome默认会阻止文件下载。你需要配置一些选项来允许下载并指定保存路径。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless=new") # 新版headless模式
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")
# 关键配置:启用下载并设置默认路径
prefs = {
"download.default_directory": "/path/to/your/download/folder", # 替换为你的下载路径
"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("https://example.com/download")
download_button = driver.find_element("id", "download-btn")
download_button.click()
# 等待下载完成(根据文件大小调整等待时间)
import time
time.sleep(5)
driver.quit()
主要问题是headless模式禁用了下载弹窗,通过prefs配置可以绕过这个限制。记得把下载路径改成你系统上真实存在的目录,Linux/macOS用绝对路径如/home/user/downloads,Windows用C:\\Users\\user\\Downloads格式。
另外注意新版Chrome要用--headless=new参数,性能更好。如果文件较大,可能需要增加等待时间或者检查下载是否完成。
一句话总结:配置Chrome选项的下载首选项即可解决。
找到链接了, 就启动个其他程序开始下载, 比如 curl, wget, httpclient .
https://stackoverflow.com/questions/45631715/downloading-with-chrome-headless-and-selenium
在 Stack Overflow 上找到相关答案了

