会員サイトなどのIDとPasswordを入力してアクセスしたいサイトにおいて、アクセスを自動化したい場合があると思います。
ここでは、「Selenium」と「webdriver」を用いた任意のサイトにログインする方法について紹介しています。
この記事の対象
行ったこと
「Selenium」というライブラリを用いて任意のサイトにIDとPasswordを用いて自動ログインする事を行いました。「Selenium」の詳しい説明については以下をご参照下さい。
>>>「Selenium」を用いたブラウザ操作とスクレイピング方法
プログラム
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
import time
import chromedriver_binary
from selenium.webdriver.common.by import By
#1---ブラウザの起動
ChromeOptions = webdriver.ChromeOptions()
ChromeOptions.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome(ChromeDriverManager().install(), options=ChromeOptions)
#2---ログインページにアクセス
driver.get("https://***************")
#3---IDとパスワードの入力
id_box = driver.find_element(By.NAME, "id")
id_box.send_keys('*******')
password_box = driver.find_element(By.NAME, "pwd")
password_box.send_keys('*******')
#4---ログインボタンをクリック
login_button = driver.find_element(By.NAME, "login")
login_button.click()
#5---ページの読み込みを待つ
time.sleep(3)
#6---ブラウザを終了する
driver.quit()
上記は任意のサイトに飛んで、指定の要素を見つけて、それぞれIDとPasswordを入力しています。最後にLoginボタンをクリックしています。
以下は解説になります。
#1---ブラウザの起動
ChromeOptions = webdriver.ChromeOptions()
ChromeOptions.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome(ChromeDriverManager().install(), options=ChromeOptions)
1の部分では「webdriver.ChromeOptions()」を使用して、Chromeのオプションを設定しています。また、「excludeSwitches」を使用して、ログの出力を無効にしています。次に「webdriver.Chrome()」を使用して、ChromeのWebDriverを起動しています。「ChromeDriverManager().install()」は、最新のChromeDriverを自動的にダウンロードしています。
#2---ログインページにアクセス
driver.get("https://***************")
2の部分では「driver.get()」を使用して、指定のURLにアクセスしています。
#3---IDとパスワードの入力
id_box = driver.find_element(By.NAME, "id")
id_box.send_keys('*******')
password_box = driver.find_element(By.NAME, "pwd")
password_box.send_keys('*******')
3の部分ではIDとPasswordを入力しています。「driver.find_element()」を使用して、IDとパスワードの入力ボックスを取得し、「send_keys()」を使用して、それぞれの入力を行っています。
#4---ログインボタンをクリック
login_button = driver.find_element(By.NAME, "login")
login_button.click()
4の部分では「driver.find_element()」を使用して、ログインボタンを取得し、「click()」を使用してクリックしています。
#5---ページの読み込みを待つ
time.sleep(3)
5の部分ではtime.sleep()を使用して、ページの読み込みを待っています。
#6---ブラウザを終了する
driver.quit()
6の部分では、driver.quit()を実行してブラウザを終了しています。