使用 selenium 下载碰见的问题
文件存在危险,因此 Chrome 已将其拦截
查找了很多配置文件都无法解决这个问题
经过多次测试,下面的参数配置可以解决这个问题
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()# 一旦下载开始,等待文件下载完成whilenotany(fname.endswith(".docx")for fname in os.listdir("/path/to/download/directory")):
time.sleep(1)print("Download completed!")
在上述代码中,我们使用
add_experimental_option()
方法设置了以下配置:
download_restrictions
: 禁用下载保护,允许下载所有类型的内容。download.default_directory
: 指定文件下载路径。download.prompt_for_download
: 禁用下载提示对话框(直接开始下载)。download.directory_upgrade
: 启用目录升级,以确保文件下载到指定的文件夹。safebrowsing_for_trusted_sources_enabled
: 禁用针对受信任来源的安全浏览。safebrowsing.enabled
: 禁用安全浏览,允许下载被 Chrome 识别为不安全的文件。
在运行 Chrome 时,我们添加了以下参数:
--headless
: 启用无头模式,隐藏 Chrome 窗口以在后台执行。--disable-gpu
: 禁用 GPU 加速。
使用上述选项和参数,您应该能够成功下载文件。请注意,为确保下载成功,在代码中添加一个等待循环来检查文件是否已下载完成,并在下载完成后执行您的其他操作。
版权归原作者 Follow丿 所有, 如有侵权,请联系我们删除。