selenium 下载文件取消安全下载的方法

发布于:2024-04-25 ⋅ 阅读:(18) ⋅ 点赞:(0)
问题描述

我要从一个网站上下载文件,谷歌浏览器总是自动阻止下载,并询问我是否保留。
可是,我想要的是不要询问,默认下载即可。

运行环境
  • OS: macOS
  • selenium: 4.19.0
  • python: 3.10.11
  • Chrome: 124.0.6367.62
  • selenium chromedriver: 123.0.6312.58
尝试无效方案

尝试selenium 下载文件取消安全下载的配置 博客中配置:

from undetected_chromedriver import Chrome, Options

options = Options()

# 禁用下载保护,允许下载所有类型的内容
options.add_experimental_option("prefs", { "download_restrictions": 0 })
options.add_experimental_option("prefs", { "safebrowsing.enabled": False })

# 配置文件下载路径
options.add_experimental_option("prefs", {
    "download.default_directory": "/path/to/download/directory",
    "download.prompt_for_download": False,
    "download.directory_upgrade": True,
    "safebrowsing_for_trusted_sources_enabled": False,
    "safebrowsing.enabled": False
})

# 运行 Chrome,并隐藏窗口以在后台执行
options.add_argument("--headless")
options.add_argument("--disable-gpu")

with Chrome(options=options) as browser:
    # 转到目标网页
    browser.get("https://example.com/downloads/myfile.docx")

    # 找到下载链接并点击下载文件
    download_link = browser.find_element_by_xpath("//a[@download]")
    download_link.click()

    # 一旦下载开始,等待文件下载完成
    while not any(fname.endswith(".docx") for fname in os.listdir("/path/to/download/directory")):
        time.sleep(1)
    print("Download completed!")

按照如上配置,无效,浏览器仍然有阻止行为。

解决方案

⚠️注意:必须设置selenium打开的浏览器哈!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将自己要打开的网站地址添加到这里即可。
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到