2017-03-31 27 views
0

私はいくつかのPDFファイルのダウンロードを自動化するためにセレンのwebdriverを使用しています。 PDFプレビューウィンドウ(下記参照)が表示され、今度はファイルをダウンロードしたいと思います。ブラウザとしてGoogle Chromeを使用してこれを実現するにはどうすればよいですか?Selenium Webdriver:PythonでPDFファイルをダウンロードするには?

Dialog Box

+0

[この回答](https://stackoverflow.com/a/43471196/3846228)を見てください。多分それはあなたを助けるでしょう。 –

答えて

1

私は最後のバージョンによるChromeに同じ問題を持ってブラウザ内PDFServletを持つすべてのPDFを開き、プロセスをダウンロードし、直接起動しません。

最後のChromeバージョンでは、chrome:pluginsにアクセスしてChrome PDF Viewerを無効にできますが、このオプションは現在存在しません。

私は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からクロムドライバをダウンロードできます。

希望すると助かります!

+0

これはguiで動作しますが、 'options.add_argument( 'headless')'を追加しても動作しません。どんな考え? – jaggi

+0

'add_argument(" - headless ")'を試してください。これはpython3で動作します。私は確信しています、それはPython 2でも動作します。 –

+0

私はpython3も使用しています。それは他のpdfリンクでは機能しているかもしれませんが、AWS S3リンクでは機能しません。例: 'http://spark-public.s3.amazonaws.com/nlp/slides/AdvancedMaxent.pdf '。 wgetでもawsリンクではありません。私はあなたがguiモードであるかどうかをどうやって調べるか分からない。 – jaggi

関連する問題