Python

Selenium経由でGoogleログオンしようとするとエラー

Python

最近、以前に作成していたツールを使っていただいている方から問い合わせがあって調べたのでメモしておきます。

ちなみに、Seleniumでの自動操作についてはあくまで自己責任でお願いします。

エラーの現象

Selenium経由でGoogleへログオンしようとすると、「このブラウザまたはアプリは安全でない可能性があります。」というエラーが出てログオンできない状態でした。

Selenium実践入門 ――自動化による継続的なブラウザテスト WEB+DB PRESS plus

Selenium実践入門 ――自動化による継続的なブラウザテスト WEB+DB PRESS plus

伊藤 望, 戸田 広, 沖田 邦夫, 宮田 淳平, 長谷川 淳, 清水 直樹, Vishal Banthia
3,449円(02/07 19:05時点)
発売日: 2018/11/14
Amazonの情報を掲載しています

エラーの原因

ちょっと調べたところ、以下の記事が概要しそうです。

「人の手ではなくソフトウェアで自動的に操作されている」というのはまさしくSeleniumの事を指すので、これが検知されていると思われます。

以前はできていたはずですが、Google側の仕様変更によって変わってしまったようです。

サポートされているブラウザでログインする - パソコン - Google アカウント ヘルプ
お持ちの Google アカウントを保護できるように、Google では一部のブラウザからのログインが不可となっており、次のようなブラウザからのログイン

どうも、ChromeだけでなくFirefoxでもSeleniumを使っていると弾かれるみたいです。

対応

今回はとあるサイトにログオンする際の認証としてGoogleを使っていました。

Selenium経由ではなく手動でChromeを立ち上げて認証を行った場合には、上記のエラーはでずにGoogle認証もクリアできました。

そこで、ログオンに成功したChromeのプロファイルをSeleniumで指定しているプロファイルに上書きします。

ちなみにselenium側では以下の様にプロファイル名を指定しています。

options.add_argument('--user-data-dir=UserProfile')

まずはログオン成功したChromeのプロファイルがどこにあるか確認します。

Chromeに「chrome://version」と入力するとProfile Pathが確認できます。

そうしたらフォルダへ移動してデータをコピーしますが、ここで注意です。DefaultではなくUser Dataのフォルダへ移動してその階層にあるデータをコピーしてください。

データのコピーが終わったらSelenium経由で操作を試してみてください。ログオンが成功した状態で操作できるようになっているはずです。

Pythonのオススメ勉強方法

私がオススメするPython初心者向けの最初に購入すべき書籍は「シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全です。

シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全

この書籍は実際にシリコンバレーの一流エンジニアとして活躍している酒井潤さんが書いた本です。

内容も初心者から上級者までまとめられており、各Lessonも長すぎずに分かりやすくまとめられているので、初心者の方にもおすすめです。

シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全

今回は以上となります。

コメント

タイトルとURLをコピーしました