我一直在编写一段代码,使用的是使用Selify的python语言,它应该可以访问网页并下载pdf.但是,当驱动程序点击按钮时,它会生成一个带有PDF的新选项卡,而我无法使用该URL下载PDF. 有谁能帮帮我吗?

(例如:如果我要求我的驱动程序"获取"PDF"URL",驱动程序将打开我之前的页面,即它具有打开PDF Chrome预览器的按钮的页面).

如果这个问题看起来可以理解,请告诉我,这样我就可以更好地解释它.

推荐答案

似乎Chrome的默认配置是出于安全原因禁用下载.您可以在选项中更改此设置.我附上了一个基于Arxiv的工作示例,它具有安全的pdf下载:

options = webdriver.ChromeOptions()
options.add_experimental_option('prefs', {
"download.default_directory": os.path.join(os.getcwd(),"Downloads"), #Set directory to save your downloaded files.
"download.prompt_for_download": False, #Downloads the file without confirmation.
"download.directory_upgrade": True,
"plugins.always_open_pdf_externally": True #Disable PDF opening.
})

driver = webdriver.Chrome(os.path.join(os.getcwd(),"Downloads","chromedriver"),options=options) #Replace with correct path to your chromedriver executable.


driver.get("https://arxiv.org/list/hep-lat/1902") #Base url


driver.find_elements(By.XPATH,"/html/body/div[5]/div/dl/dt[1]/span/a[2]")[0].click() #Clicks the link that would normally open the PDF, now download. Change to fit your needs

Python相关问答推荐

Pydantic 2.7.0模型接受字符串日期时间或无

由于NEP 50,向uint 8添加-256的代码是否会在numpy 2中失败?

仿制药的类型铸造

如何检测背景有噪的图像中的正方形

Pytest两个具有无限循环和await命令的Deliverc函数

如何避免Chained when/then分配中的Mypy不兼容类型警告?

删除所有列值,但判断是否存在任何二元组

移动条情节旁边的半小提琴情节在海运

根据列值添加时区

调用decorator返回原始函数的输出

如何指定列数据类型

与命令行相比,相同的Python代码在Companyter Notebook中运行速度慢20倍

lityter不让我输入左边的方括号,'

python—telegraph—bot send_voice发送空文件

合并与拼接并举

Pandas:填充行并删除重复项,但保留不同的值

从旋转的DF查询非NaN值

提高算法效率的策略?

以极轴表示的行数表达式?

Fake pathlib.使用pyfakefs的类变量中的路径'