2017-03-31 547 views
0

我使用硒webdriver自动下载几个PDF文件。我得到了PDF预览窗口(见下文),现在我想下载该文件。我如何使用Google Chrome浏览器来完成此操作?Selenium Webdriver:如何使用Python下载PDF文件?

Dialog Box

+0

看看[这个答案](https://stackoverflow.com/a/43471196/3846228)...也许它会帮助你。 –

回答

1

我有同样的问题,由于Chrome浏览器中的最后一个版本将打开所有PDFServlet中PDF中的浏览器,而不是推出直接下载过程。

在上一个Chrome版本中,您可以转至Chrome:插件并停用Chrome PDF查看器,但此选项现在不存在。

我尝试获取embed和src pdf路径并尝试使用c#HttpWebClientRequest尝试下载,但这不适用于我。

我尝试查看文档以尝试查找禁用此PDF功能的参数,但我没有找到它。

1

您可以使用硒从网上下载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

您可以从here下载chrome驱动程序。

希望它有帮助!

+0

这与gui的工作,如果我添加'options.add_argument('无头')'它不起作用。任何想法为什么? – jaggi

+0

尝试'add_argument(“ - 无头”)'。它适用于python3。我相信,它也可以用于Python 2。 –

+0

我也在使用python3。它可能适用于其他pdf链接,但对于AWS S3链接,它不起作用。例如:'http://spark-public.s3.amazonaws.com/nlp/slides/AdvancedMaxent.pdf '。即使wget不适用于aws链接。我不确定aws如何检查你是否处于gui模式。 – jaggi

相关问题