いやぁ~Selenium(セレニウム)は楽しいっっ!!っていうのは、嘘ですw
ただSeleniumを使うと、規則性のある作業であれば、本当に楽になります。
今日は、少しSeleniumを使うにあたってのオプション機能について紹介していきます。
ちなみに今回もGoogleChromeを使っていきます。
ログイン状態を選択する(ログオン状態を維持する)
Seleniumを使って思うのが、Googleアカウントにログインしていない状態から起動することです。
ログイン状態から始まった方がメリットが高い人は多いと思います。
例えばですが、【TSUTAYAのサイトの在庫情報を見るとき】です。
マイ店舗を登録できるのですが、ゲスト状態の為、未登録状態になってしまいます。
このように、ゲスト状態で操作すると何気ない事でウェブサイト画面に差異を生じることがあります。
さっそくですが、なぜGoogleアカウントのログイン状態で起動するのでしょうか?
それはGoogleChromeにプロフィールパスというものが存在しています。
このプロフィールパスでユーザーを切り替えていることになります。
GoogleChromeのプロフィールパスの調べ方
GoogleChromeを起動して、URLを記載するところに下記を入力してください。
chrome://version
下記画面が表示され、プロフィールパスを確認することができます。
このフォルダを見に行きます。
※1つずつフォルダをクリックする場合は【AppData】は隠しフォルダなので見えるように設定してください。
※実は自分はログインせずに使っていますw
ログイン状態で使用中の方は、最後のフォルダが[Default]ではなく、[Profile **]になっています。
[User Data]の中に[Profile 1]というフォルダがあります。
複数ある場合は、[Profile **]あると思います。
※自分は1つのアカウントなので、この[Profile 1]が自分のアカウント情報です。
ようはSeleniumでChromeを起動するときは、このプロフィールを選択して起動する事になります。
プロフィールパスを指定して起動する方法
さっそく本題です。Pythonではどのように書けばいいのでしょうか?
GoogleChromeを起動する時に2つを指定して起動します。
◆ユーザーデータのフォルダパス(userDir)
◆プロフィールフォルダ名(profileDir)
流れは下記の通りです。
- ChromeOptionのインスタンスの作成
- ユーザーフォルダを指定(引数設定[追加])
- プロフィールフォルダの指定(引数設定[追加])
- 引数を設定した状態でChrome起動
from selenium import webdriver
options = webdriver.ChromeOptions()
userDir = r'C:\Users\(user)\AppData\Local\Google\Chrome\User Data'
profileDir = 'Profile 1'
options.add_argument('--user-data-dir=' + userDir)
options.add_argument('--profile-directory=' + profileDir)
driver = webdriver.Chrome(options = options)
driver.get("https://www.google.co.jp/");
確認してみたところ、問題なさそうでした。
画面を非表示で実行する
ある程度、問題なく動くことを確認すると、毎回画面が出てくることが鬱陶しくなりますw
なので、ウィンドウは非表示で実行するようにしたいと思います。
これも実は引数の設定だけで可能です。
先ほどのPythonのプログラムに1行引数を追加して、実行したいと思います。
どこが追加されたかわかりますか?
options.add_argument('--headless')
この引数を追加した事で、非表示で実行するようになりました。
ウィンドウを最大化にする
あまり使わない機能かもしれませんが、一応紹介します。
記憶が定かではないのですが、Seleniumでクリックをする時、ズレる時があり、URL先のデザインがウィンドウサイズに応じて変化していたのが原因だったと思います。
できるだけ、サイトのデザインが自動調整でズレない為にも、最大化にしておくのは保険としてやっておいても損はないかもしれません。
今まではChromeに対して、設定し実行していましたが、
今回は、ChromeDriverに対して、命令します。
- ChromeDriverのインスタンスを作る
- Windowの最大化の命令
- URLにアクセス
今回も1行追加しました。
driver.maximize_window()
まとめ
今回はSeleniumを使うにあたってのオプションについて書きました。
他にもいっぱいあるのでしょうが、自分が使うのは、
【Googleアカウントの選択】
【非表示での起動】
【ウィンドウの最大化】
の上記3点でした。
また何かあれば記事にはしますが、こんなものかなぁ~。。。
今度は、Seleniumを使う事例を紹介していけたらいいなっ!て思っています。
前回も言いましたが、スクレイピングも紹介できればと思っています。
業務でプログラミング(C#/VB/Python)を作っている。
挫折を何回も繰り返し、幾度の壁を乗り越えてきた。
乗り越えてきた事を忘れないように記録に残す。
同じ思いをしている人への情報提供になれたらと思う。
基本は初心者に向けたプログラムの情報を提供する。
コメント