見出し画像

【Selenium】会員サイトへの自動ログイン

やりたいことは以下の3ステップ

⓵ 会員サイトを開く
⓶ ログインIDとパスワードを自動入力
③ ログイン

画像1

プログラミングスクール 「テックキャンプ」受講中に作成したAppなので
「テックキャンプ ログインページ」を使用しました。

※この操作自体はHeadlessモードでもできるそうですが、
ログイン後、Java Scriptを使ったwebページの操作を行う予定なので
GUIを使用したコードを書いています。

※Headlessモードとは
https://selenium-world.net/selenium-tips/3729/

使用ライブラリ

# 使用言語:Python

from selenium import webdriver
import chromedriver_binary
from selenium.webdriver.support.select import Select
from selenium.webdriver.chrome.options import Options
import time

ライブラリの説明

from selenium import webdriver

Seleniumとは、ブラウザを自動的に操作するライブラリです。主にWEBアプリケーションのテストやWEBスクレイピングに利用されます。

出典
https://ai-inter1.com/python-selenium/

import chromedriver_binary

SeleniumでGoogle Chromeブラウザを自動操作するために必要なライブラリ。
Seleniumを使うには、使用するブラウザのインターフェイスドライバが必要だそうです。Chrome以外を使用される方はブラウザに合ったものを選択してインストールしてください。

参考
https://kurozumi.github.io/selenium-python/installation.html#drivers%EF%BC%89

【!】注意
Chromedriverをインストールする際はブラウザのバージョンに注意してインストールしてください。

以下の説明がわかりやすかったです。
https://qiita.com/hanzawak/items/2ab4d2a333d6be6ac760

記述したコード

ブラウザを起動し、指定したページを開く

driver = webdriver.Chrome()
driver.get('https://master.tech-camp.in/tech_user/login?redirect_url=https://master.tech-camp.in/')

driver.get('XXX') XXXの部分にログインURLを格納

画像2

実行するとウィンドウが開きます。
seleniumを使ってドライバを操作すると上記のような文字が表示されるようです。

ログインIDとパスワードを変数に格納します。

in_id="sample_desuwayo@gmail.com"
in_passward="hogehuga"

IDとパスワードの位置を指定し、自動入力します。

 #ログインパスワードとIDを自動入力 
login_id = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[1]/div[2]/form/input[1]")
login_id.clear()
login_id.send_keys(in_id)
login_pass = driver.find_element_by_xpath("/html/body/div/div/div[2]/div[1]/div[2]/form/input[2]")
login_pass.clear()
login_pass.send_keys(in_passward)

login_id や login_pass のdriver.find_element_by_xpathに格納されているxパスはchromeデベロッパーツールから調べます。

デベロッパーツールの開き方

画像3

xpathの取得

画像4

画像5

ログイン

login_btn = driver.find_element_by_xpath("/html/body/div/div/div[2]/div[1]/div[2]/form/input[3]") 
login_btn.click()
time.sleep(5)

同じ要領でログインボタンのXPathを取得し、driver.find_element_by_xpathの中に格納します。
login_btn.click()でログインボタンをクリック、するとログイン後の画面が表示されます。

これで完成です。

次の記事ではJava Scriptを使用したwebページのスクレイピングを行っていきます。

参考URL

ログインパス・IDの自動入力参考URL
https://blog.n-hassy.info/2021/05/selenium-chrome-scraping/

ログインボタンを自動でクリックする
https://techacademy.jp/magazine/33697

この記事が気に入ったらサポートをしてみませんか?