プログラムとその他いろいろメモ

Pythonでのseleniumによるchrome操作でログイン画面等を回避する方法

今回はwebサイトを操作したりするのにログインする必要な場合に毎回ログインするような手間を省く方法です。

これはサイトによってログイン時にCAPCHAという「テーマに沿った画像を複数選択しないとログインできなくさせる例の機能」いわゆる「私はロボットではありません」を回避する事が出来ます。

ユーザプロファイルを参照してchromeを起動する

通常Wordpressでは、あらかじめChromeにログインしてパスワードを記録させておけば、それでログイン画面をスキップしてログイン状態でダッシュボードに入る事が出来ます。

しかしseleniumで特に処理を追加しないでchromeを起動するとまっさらなデフォルトの状態なchromeが起動してしまうので、IDとパスワードの入力が求められてしまいます。

そこで、あらかじめChromeにログインしてパスワードを記録させた状態を利用する為に”ユーザプロファイルを参照してchromeを起動”させます。

from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.chrome.options import Options
#------------------------------------
#ユーザー名
UserDir="?????"
#------------------------------------

options = webdriver.ChromeOptions()

pp=r"C:\\Users\\"+UserDir+"\\AppData\\Local\\Google\\Chrome\\User Data"
options.add_argument('--user-data-dir='+pp)
options.add_argument('--profile-directory=Default')

web=webdriver.Chrome(options=options)

Chromeをインストールしているフォルダを指定してwebdriverを起動させます。
基本的にWindows10ではWindowsにログインする時に入力しているユーザー名がUserDirのフォルダになるかと思います。

ただし、このユーザープロファイルを使ったChrome起動方法は
別に既にChromeを起動しているとエラーとなるので全てのChromeをあらかじめ終了しておきましょう。

※Python内で終了するにはPythonで今開いてるchromeを全て閉じさせる方法に記しておきました。

モバイルバージョンを終了