前置き
Seleniumのオプションである「--user-data-dir=」はご存じでしょうか。
これでChromeブラウザのUserDataフォルダまでのパスを通すと、ユーザープロファイルを使用することができます。つまり、Seleniumで通常時のブラウザのログイン状態が引き継げるといったものです。
スクレイピングするにあたって、これほど心強い機能はないのですが1つ弱点があります。
それは通常時のブラウザが立ち上がったままdriverを起動すると、エラーが発生します。
基本的にアクセスが拒否されましたと言われるはずです。
その為、driver起動時には毎度通常ブラウザを閉じる作業が必須でした。
そこで今回この通常ブラウザを閉じる作業を自動化しようと考えました。
便利ですしヒューマンエラー対策にもなりますしね。
注意事項
この方法はChromeにとって非正規で非推奨であるため、責任は負えません。
もし不具合が発生しても責任はとれないのでご了承ください。
Chromeにとっては予期せぬ終了として扱われるようなので、注意です!
方法
まずはbatファイルを作成します。
Pythonファイルと同じ階層に下記のファイルを作成してください。
taskkill /F /IM chrome.exe /T
taskkill /F /IM chromedriver.exe /T
方法としてはいたって単純で、今作成したbatファイルを実行するだけになります。
import os
import subprocess
# ここでbatファイル実行
subprocess.Popen([fr"{os.getcwd()}\\chrome_finish.bat"])
これで今開いている全てのChromeブラウザは閉じたはずです。
また一応chromedriverも閉じるようにしてあります。
この後に起動すればOKです!