2017-03-31 546 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

相關問題