Selenium Webdriver:如何使用 Python 下载 PDF 文件?

问题描述 投票:0回答:7

我正在使用 selenium webdriver 自动下载多个 PDF 文件。我看到 PDF 预览窗口(见下文),现在我想下载该文件。如何使用 Google Chrome 作为浏览器来实现此目的?

python selenium pdf download automation
7个回答
42
投票

尝试这个代码,它对我有用。

options = webdriver.ChromeOptions()
options.add_experimental_option('prefs', {
"download.default_directory": "C:/Users/XXXX/Desktop", #Change default directory for downloads
"download.prompt_for_download": False, #To auto download the file
"download.directory_upgrade": True,
"plugins.always_open_pdf_externally": True #It will not show PDF directly in chrome
})
self.driver = webdriver.Chrome(options=options)

5
投票

我做到了并且成功了,不要问我怎么做的:)

options = webdriver.ChromeOptions()
options.add_experimental_option('prefs', {
#"download.default_directory": "C:/Users/517/Download", #Change default directory for downloads
#"download.prompt_for_download": False, #To auto download the file
#"download.directory_upgrade": True,
"plugins.always_open_pdf_externally": True #It will not show PDF directly in chrome 
})
driver = webdriver.Chrome(options=options)

5
投票

我在 Stackoverflow 本身的某个地方找到了这段代码,它对我来说就达到了目的,而根本不需要使用 selenium。

import urllib.request

response = urllib.request.urlopen(URL)    
file = open("FILENAME.pdf", 'wb')
file.write(response.read())
file.close()

3
投票

您可以使用 selenium 从网络下载 pdf (

Embeded pdf
&
Normal pdf
)。

from selenium import webdriver

download_dir = "C:\\Users\\omprakashpk\\Documents" # for linux/*nix, download_dir="/usr/Public"
options = webdriver.ChromeOptions()

profile = {"plugins.plugins_list": [{"enabled": False, "name": "Chrome PDF Viewer"}], # Disable Chrome's PDF Viewer
               "download.default_directory": download_dir , "download.extensions_to_open": "applications/pdf"}
options.add_experimental_option("prefs", profile)
driver = webdriver.Chrome('C:\\chromedriver\\chromedriver_2_32.exe', chrome_options=options)  # Optional argument, if not specified will search path.

driver.get(`pdf_url`)

它将下载 PDF 并将其保存在指定的目录中。根据您的方便更改

download_dir
位置和
chrome driver location

您可以从这里下载 Chrome 驱动程序。

希望有帮助!


0
投票

我的 Chrome 的 PDF 文档选项被管理员阻止。有没有其他方法可以在不使用选项的情况下从 Chrome PDF 查看器下载 PDF?我还需要自动下载许多 PDF 文件,但我必须为每个 PDF 指定一个特定的文件名...有什么线索吗,伙计们?

提前致谢。


-1
投票

您可以使用Python的requests库下载PDF文件

import requests
pdf_url = driver.current_url       # Get Current URL
response = requests.get(pdf_url)
file_name = 'filename.pdf'
with open(file_name, 'wb') as f:
   f.write(response.content)

-2
投票

在我的例子中,它无需任何代码修改即可工作,只需禁用 Chrome pdf 查看器

以下是禁用它的步骤

  1. 进入 Chrome 设置
  2. 滚动到底部单击“高级”
  3. 在隐私和安全下 - 单击“站点设置”
  4. 滚动至 PDF 文档
  5. 启用“下载 PDF 文件而不是在 Chrome 中自动打开它们”
© www.soinside.com 2019 - 2024. All rights reserved.