見出し画像

Seleniumで指定フォルダにファイルをダウンロードする with webdriver-manager

先日GAS中級講座を卒業してトリプル受講が終わりました。
GAS終わった直後なのに自分のなかでPython熱が高まってます。

前回、Seleniumで結構意図通りに画面遷移ができるようになったおかげで、欲しいレポートcsvファイルがローカルにダウンロードできるようになりました。

やったー!

続いては、ローカルにダウンロードしたこのファイルを解析する(のはスキル的に無理なので)あきらめて、Google DriveにアップロードしてここからはスプレッドシートとGASでやろうという作戦です。

ダウンロード先のフォルダを変更したい

SeleniumでファイルをダウンロードするとChromeの設定如何に関わらずに、デフォルトのダウンロードフォルダに入ります。

できればSeleniumでダウンロードするファイル専用のフォルダに集めたいのでChrome driverのデフォルトダウンロードフォルダを変更する方法を調べてみました。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

download = 'ダウンロード先に指定するフォルダのパス'
options = webdriver.ChromeOptions()
options.add_experimental_option("prefs", {"download.default_directory": download })
driver = webdriver.Chrome(ChromeDriverManager().install(), chrome_options=options)

これでいけました。

まず久しぶりにPythonを実行してスクレイピングしようと思うと躓くSeleniumのドライバの更新問題ですが、Python初心者講座の受講時のTAのUmeさんが素敵情報をシェアしてくれておりました。

続いて、Chrome driverのデフォルトダウンロードフォルダを設定するのはこちらを参考にしました。

こちらのサイトの説明で

chromedriverのパスを環境変数で設定してある場合でも、chrome_optionsを指定するときにはexecutable_pathが必要になるようです。

とありますが、webdriver-managerで動かしているためか、executable_pathを指定しているとエラーが出たので、ここを外してみたところうまく動きました。


この記事が気に入ったらサポートをしてみませんか?