【Python】Selenium:Chromeのファイルダウンロード先(保存先)を変更する方法
2021.06.21 /
本記事ではPythonのSeleniumにおけるChrome操作で、ファイルのダウンロード先(保存先)を変更する方法を解説していきます。
Seleniumでブラウザー操作を自動化すると、ファイルの保存先を指定したフォルダに変更したい場合があります。
例えばデフォルトのダウンロードフォルダではなく、Seleniumスクリプトが保存されているフォルダ内にダウンロードするようにしたい場合もありますよね。
そのような時に使用できる、Chromeでのファイルダウンロード先(保存先)の変更方法を見ていきましょう。
Chrome:ファイルダウンロード先(保存先)の設定
Chromeブラウザーでは、Webサイトからダウンロードするファイルの保存先を変更することができます。
デフォルト設定では「C:\Users\Windowsユーザー名\Downloads」へファイルはダウンロードされます。
このChromeでのファイル保存先の変更方法を以下に記します。
- 「…」をクリックしてメニューを開き、「設定」をクリック
- 左ペインから「詳細設定」を選択し、「ダウンロード」をクリック
- 右ペインのダウンロードから「保存先」を変更する
ファイルダウンロード先にはアクセス権が必要な場所(Windowsフォルダやロートフォルダ)は指定しないようにしましょう。
ダウンロード先がデフォルトの設定(Downloadフォルダ)に戻る
Seleniumでブラウザー操作を自動化して、ファイルダウンロードを行う場合に注意しなければならない点があります。
それは上記の方法でパソコンにインストールされているChromeブラウザーのダウンロード先を変更したとしても、Seleniumで操作するChromeには反映されないということです。
次のようにパソコンにインストールされているChromeでダウンロード先をドキュメントフォルダに変更します。
しかしSeleniumで起動したChromeではデフォルトのダウンロードフォルダになってしまいます。
Seleniumで操作するChromeのファイルダウンロード先を変更したい場合は、
Seleniumで使用するwebdriverのオプションで、ダウンロード先を変更することで実現できます。
Selenium:ダウンロード先を指定
Seleniumで操作するChromeのダウンロード先を変更するには、以下のようにwebdriver.Chromeのchrome_optionsでdownload.default_directoryを指定することで変更できます。
from selenium import webdriver
import os
iDir = os.getcwd()
options = webdriver.ChromeOptions()
options.add_experimental_option("prefs", {"download.default_directory": iDir })
chromedriver = 'chromedriver.exe'
driver = webdriver.Chrome(executable_path=chromedriver, chrome_options=options)
download.default_directory:ダウンロード先フォルダの指定
上記のコードでは、スクリプトが保存されているフォルダ(os.getcwd())をファイルのダウンロード先に指定しています。
Selenium:add_experimental_optionで複数のオプションを設定
今回はadd_experimental_optionのprefsにdownload.default_directoryを使ってダウンロード先を変更しました。
これ以外にもChromeのパスワード保存機能をオフにするときでも、prefsにオプションを追加して変更を行います。
【Python】Selenium:Chromeの「パスワードを保存しますか」を表示させない方法
パスワード機能のオフとダウンロード先の変更、両方の設定を行いたい場合は次のように記載することで実現することができます。
options.add_experimental_option("prefs", {"download.default_directory": iDir","credentials_enable_service": False, "profile.password_manager_enabled" : False})
まとめ
本記事「【Python】Selenium:Chromeのファイルダウンロード先(保存先)を変更する方法」はいかがでしたか。
Seleniumでブラウザー操作の自動化をすると、様々なエラーが発生して動作が止まります。
エラーの発生する原因がわからなくて挫折する方も多いと思います。
本サイトOFFICE54では、Seleniumのエラーについても多くの記事をアップしていますので、ぜひ本サイトを参考にしてください。