
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を指定しているとエラーが出たので、ここを外してみたところうまく動きました。