Pythonであれば、Web操作を自動で行うことが可能です
今回は、ログインを自動で行う方法をまとめました
次の記事で、Web操作には
『ChromeDrive』『selenium』
を使用します
次の記事で、ダウンロードやインストール手順を画像解説付きで
紹介しています
Selenium WordPress ログイン
ローカル(自分のパソコン)環境で用意した
Wordpressを使用しています
モジュールのインポート
1 2 |
from selenium import webdriver from selenium.webdriver.chrome.options import Options |
ChromeDriverの設定
次のコードをコメントアウト解除することで
Chromeを非表示で実行することもできますよ!
#options.add_argument(‘–headless’)
1 2 3 4 5 6 |
#Chromeオプション options = Options() #ヘッドレス指定 #options.add_argument('--headless') #ChromeDriverを読み込み driver = webdriver.Chrome(executable_path='C:\Python\chromedriver.exe', chrome_options=options) |
ログイン情報などは定数化しておきます
ログイン情報等は定数化しておくとわかりやすいですね
1 2 3 4 5 6 7 8 9 10 |
################################ #ログイン画面の情報を定数化 ################################ #ログイン画面のURL LOGIN_URL = 'http://localhost/wp_test/wordpress/wp-login.php' #ログイン情報:ユーザー名またはメールアドレス USER_NAME_OR_MAIL = "wordpress" #ログイン情報:パスワード PASS = "wordpress" |
ログイン画面へ遷移、ログイン情報を各テキストボックスへ指定します
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
################################ #ログインページを操作 ################################ #指定したurlへ遷移 driver.get(LOGIN_URL) #「ユーザー名またはメールアドレス」テキストボックスへログイン情報を設定 txtUser = driver.find_element_by_id("user_login") txtUser.send_keys(USER_NAME_OR_MAIL) #「パスワード」テキストボックスへログイン情報を設定 txtPass = driver.find_element_by_id("user_pass") txtPass.send_keys(PASS) |
ログインボタンをクリック
1 2 3 4 5 6 |
#「ログイン」ボタンクリック try: btn_login = driver.find_element_by_id('wp-submit') btn_login.click() except Exception: print('ログインボタン押下時にエラーが発生しました。') |
Selenium WordPress ログイン:実行結果
Selenium WordPress ログイン:ソースコード全文
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
from selenium import webdriver from selenium.webdriver.chrome.options import Options #Chromeオプション options = Options() #ヘッドレス指定 #options.add_argument('--headless') #ChromeDriverを読み込み driver = webdriver.Chrome(executable_path='C:\Python\chromedriver.exe', chrome_options=options) ################################ #ログイン画面の情報を定数化 ################################ #ログイン画面のURL LOGIN_URL = 'http://localhost/wp_test/wordpress/wp-login.php' #ログイン情報:ユーザー名またはメールアドレス USER_NAME_OR_MAIL = "wordpress" #ログイン情報:パスワード PASS = "wordpress" ################################ #ログインページを操作 ################################ #指定したurlへ遷移 driver.get(LOGIN_URL) #「ユーザー名またはメールアドレス」テキストボックスへログイン情報を設定 txtUser = driver.find_element_by_id("user_login") txtUser.send_keys(USER_NAME_OR_MAIL) #「パスワード」テキストボックスへログイン情報を設定 txtPass = driver.find_element_by_id("user_pass") txtPass.send_keys(PASS) #「ログイン」ボタンクリック try: btn_login = driver.find_element_by_id('wp-submit') btn_login.click() except Exception: print('ログインボタン押下時にエラーが発生しました。') |
Selenium Yahoo ログイン
YahooJapnaへ自動ログインしてみましょう
基本的にWordpress版とソースの内容は同じです
ただYahooの場合手順が次のようになります
1.『ID/携帯電話番号/メールアドレス』入力画面 『次へ』ボタン
2.『パスワード』入力画面 『ログイン』ボタン
そのため1と2の間で間隔をあけてから実行させるために
次のソースを1と2の間に設定し間隔をあけます
1 2 3 4 |
from time import sleep #3秒待機 sleep(3) |
Selenium Yahoo ログイン:ソースコード全文
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
from selenium import webdriver from selenium.webdriver.chrome.options import Options from time import sleep #Chromeオプション options = Options() #ヘッドレス指定 #ChromeDriverを読み込み driver = webdriver.Chrome(executable_path='C:\Python\chromedriver.exe', chrome_options=options) ################################ #ログイン画面の情報を定数化 ################################ #ログイン画面のURL LOGIN_URL = 'https://login.yahoo.co.jp/config/login' #ID/携帯電話番号/メールアドレス ID_USER_NAME_OR_MAIL = "" #ログイン情報:パスワード PASS = "" ################################ #ログインページを操作 ################################ #指定したurlへ遷移 driver.get(LOGIN_URL) #「ID/携帯電話番号/メールアドレス」テキストボックスへログイン情報を設定 txtIdOrMaileOrTel = driver.find_element_by_id("username") txtIdOrMaileOrTel.send_keys(ID_USER_NAME_OR_MAIL) #「次へ」ボタンクリック try: btn_Next = driver.find_element_by_id('btnNext') btn_Next.click() except Exception: print('次へボタン押下時にエラーが発生しました。') #3秒待機 sleep(3) #「パスワード」テキストボックスへログイン情報を設定 txtPass = driver.find_element_by_id("passwd") txtPass.send_keys(PASS) #「次へ」ボタンクリック try: btn_Login = driver.find_element_by_id('btnSubmit') btn_Login.click() except Exception: print('ログインボタン押下時にエラーが発生しました。') |
実行結果
1.『ID/携帯電話番号/メールアドレス』入力画面 『次へ』ボタン
まとめ:Python Selenium 自動ログインの成功!
Web操作の基本として2つのサイトを例にログイン操作をまとめました
Web操作使いこなせば、普段の業務の効率化ができそうですね
コメント