解决selenium使用chrome下载文件(如pdf)时,反而打开浏览器的预览界面

文章目录

  • 解决方法
  • 完整的配置

解决方法

在初始化浏览器的时候,添加以下配置即可:

    option = webdriver.ChromeOptions()prefs = {"profile.managed_default_content_settings.images": 2,  # 禁止加载图片# 'permissions.default.stylesheet': 2,  # 禁止加载css# ====== 配置下载 ====='profile.default_content_settings.popups': 0,  # 取消下载确认弹窗# 默认下载路径'download.default_directory': r"C:\Users\User4\Downloads", # 这个是自定义的下载路径"profile.default_content_setting_values.automatic_downloads": 1,  # 允许多文件下载"download.prompt_for_download": False,  # To auto download the file"download.directory_upgrade": True,"plugins.always_open_pdf_externally": True}option.add_experimental_option("prefs", prefs)browser = webdriver.Chrome(options=option)

完整的配置

使用如下程序初始化,可以避免很多问题:

from selenium import webdriver
def get_browser():option = webdriver.ChromeOptions()option.add_argument('--disable-gpu')option.add_argument('lang=zh_CN.UTF-8')# option.add_argument('headless')  # 无界面prefs = {"profile.managed_default_content_settings.images": 2,  # 禁止加载图片# 'permissions.default.stylesheet': 2,  # 禁止加载css# ====== 配置下载 ====='profile.default_content_settings.popups': 0,  # 取消下载确认弹窗# 默认下载路径'download.default_directory': r"C:\Users\User4\Downloads","profile.default_content_setting_values.automatic_downloads": 1,  # 允许多文件下载"download.prompt_for_download": False,  # To auto download the file"download.directory_upgrade": True,"plugins.always_open_pdf_externally": True}option.add_experimental_option("prefs", prefs)browser = webdriver.Chrome(options=option)browser.implicitly_wait(10)  # 等待元素最多10sbrowser.set_page_load_timeout(10)  # 页面10秒后强制中断加载return browser

在需要下载文件时,只需要直接browser.get(网络文件URL)即可直接下载文件到配置的"C:\Users\User4\Downloads"路径下:

    browser = get_browser()browser.get("http://xxxx/xxx.pdf") # 这里会直接下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/156532.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux下使用宏定义判断系统架构和系统类型

文章目录 查看编译器当前支持的宏定义查找指定的宏不同架构不同系统 附录-编译器内部常用的一些宏定义宏定义实际应用使用宏定义判断系统架构使用宏定义判断系统类型 一般情况下在linux下做C/C方面的开发不需要太关注系统架构,当然如果涉及到不同架构下的适配问题&a…

软考小记-软件工程

模块的控制范围包括模块本身及其所有的从属模块。模块的作用范围是指模块一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围.,原则上一个模块的作用范围应该在其控制范围之内,若没有,则可以将判定所在模块…

安装向量数据库milvus及其Attu

前置条件安装docker compose 在宿主机上创建文件目录 mkdir -p /home/sunyuhua/milvus/db mkdir -p /home/sunyuhua/milvus/conf mkdir -p /home/sunyuhua/milvus/etcd下载docker-compose.yml wget https://github.com/milvus-io/milvus/releases/download/v2.2.11/milvus-s…

OpenGL_Learn14(光照贴图)

1. 漫反射贴图 在光照场景中,它通常叫做一个漫反射贴图(Diffuse Map)(3D艺术家通常都这么叫它),它是一个表现了物体所有的漫反射颜色的纹理图像。 我们会将纹理储存为Material结构体中的一个sampler2D 。我们将之前定义的vec3漫反…

积分...

黎曼积分: ∫ a b f ( x ) d x lim ⁡ m a x Δ x i − > 0 ∑ 0 n f ( z i ) Δ x i \int_a^bf(x)dx\lim\limits_{max \Delta x_i->0}\sum_0^nf(z_i)\Delta x_i ∫ab​f(x)dxmaxΔxi​−>0lim​∑0n​f(zi​)Δxi​ Δ x i x i − x i − 1 \Delta x_ix_i-x_{i-1…

AI技术实力认证,宏电股份荣获2023年度AI天马“领军企业”

近日,由中国新一代人工智能发展战略研究院指导,深圳市人工智能产业协会主办,广东未来产业研究院承办的2023年度“AI天马”认定最终结果公布,宏电股份荣获AI天马“领军企业”奖项。 宏电股份基于20余年的技术沉淀,在工业…

基于猎食者算法优化概率神经网络PNN的分类预测 - 附代码

基于猎食者算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于猎食者算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于猎食者优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络…

关于lenra你需要了解的

monorepo:项目代码管理方式,单个仓库中管理多个项目是一种设计思想 lenra:是一种工具,对于使用npm和git管理多软件包代码仓库的工作流程进行优化 使用这些工具的优点: 公共依赖只要安装一次,Monorepo 中…

数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大关键点分析

数字化时代银行网点厅堂营销需要抓住以下5大关键点: 1、精准识别客户:在数字化时代,银行网点厅堂营销的关键在于精准识别客户。通过利用大数据和人工智能技术,银行可以分析客户的行为和需求,从而更好地了解客户&#…

面试题:你怎么理解System.out.println() ?

文章目录 首先分析System源码out源码分析println分析拓展知识点 你如何理解System.out.println() ? 学了这么久的面向对象编程,那如何用一行代码体现呢? 如果你能自己读懂System.out.println(),就真正了解了Java面向对象编程的含义 面向对…

如何理解低代码开发工具?

目录 一、低代码平台是什么 1. 数据输入 2. 数据流转 3. 数据加工 4. 数据输出 (1)视图:单表的数据的简单展示 (2)看板:提供单表、多表数据的多种图表组合展示 二、低代码能力 ➪ 全栈可视化编程&#xff1…

大彻大悟,期末的大学生请码住!!

不装了,我摊牌了,这东西大学生太太太需要了啊! 就是这个 写作火火,只需要输入需求,一键生成,几秒就给我写出来一篇,不满意还可以重新写,关键每次内容都不一样,完全不怕…

Redis常用的八种场景

作为一名 Java后端人员,对 Redis肯定并不陌生,Redis作为一种内存数据库,以其速度之快在编程的舞台上纵横多年,那么,Redis到底适合哪些业务场景?今天就来聊一聊。 1. 缓存/数据库 缓存(Cache&am…

电压放大器实验可以研究哪些领域

电压放大器是一种电子电路,能够对输入信号进行放大,使得输出信号具有更大的幅度。在实验中,电压放大器可以应用于许多领域,从电子学到通信领域,都能够进行研究与实践。 在电子学领域,电压放大器实验可以用于…

C#中密封类和密封方法

目录 一、定义与特性 1.何时使用密封类 2.定义 3.特性 二、示例 如果所有的类都可以被继承,很容易导致类的层次结构变得十分复杂。使对类的理解和使用变得十分困难。为了避免滥用继承,C#中提出了密封类的概念。 一、定义与特性 密封类可以用来限制…

算法---腐烂的橘子

题目 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元格…

isEmpty() 和 null的区别

概念 null:是对象为空(IsNull);isEmpty():是值为空(IsEmpty) 具体 null指任务类型变量以及对象类型的变量是否为空。IsEmpty函数:用于判断一个变量是否已初始化,如果变…

QML SplitView

SplitView 是什么主要属性orientationhandlevisibleAreachildren简单示例interactiveminimumWidth/minimumHeight 和 maximumWidth/maximumHeightonClicked 和 onDoubleClicked示例 属性和技巧Layout AdjustmentsStyling and AppearanceIntegrating with Other ComponentsProp…

STM32在进行CAN总线多节点通信时,同时发数据会一直收不到某设备数据的问题及解决

CAN多设备通信收不到某设备数据的问题及解决 遇到的问题问题的发现CAN总线的一般冲突机制STM32中的CAN冲突机制 遇到的问题 问题的发现 最近在开发Canopen项目中,进行一主多从设备通信时,主站发送同步帧,两个从站往往只有帧ID优先级高的设备…