はじめに
大学の健康管理システムに毎日ログインして健康と入力する作業が面倒と感じたので今回基本となるWebサイトへの自動入力に関する記事を書こうと思いました。
会社員や学生の方にもこういうルーティンワークがある人が参考となると嬉しいです。
開発環境
OS | 使用言語 | ブラウザ |
---|---|---|
Windows10 | Python | Google Chrome |
事前準備
まずはGoogle Chromeのversion確認
Google chromeの右上にある3つの点々→「ヘルプ」→「Google Chromeについて」をクリック
自分の場合はバージョン:103.0.5060.66と確認
バージョンに沿ったChromedriverのインストール
以下のサイトから自分のバージョンにあったdriverをインストール
Chromedriver-binary
自分の場合は以下のバージョンをインストールした。
pip install chromedriver-binary==103.0.5060.53.0
バージョンが異なると以下のようなエラーが表示されるので注意
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 104
Current browser version is 103.0.5060.66 with binary path
seleniumのインストール
SeleniumはWebブラウザで行うクリック操作やキーボード入力などをプログラム上から自動で操作できるようにしたライブラリ
pip install selenium
以上で準備完了
コード
ブラウザの起動
自分が自動ログインしたいウェブサイトの起動確認
import time
import chromedriver_binary
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome import service
#WEBブラウザの起動
driver = webdriver.Chrome()
#自動ログインしたいウェブサイトのURLをコピペ
driver.get('https://hms.hc.nagasaki-u.ac.jp/menulogin.php')
#ウェブサイトの起動を確認するため
time.sleep(1)
IDとパスワードの自動入力
#例を参照して、属性name,classの値を入力
my_id = driver.find_element(By.NAME, "UID")
password = driver.find_element(By.NAME, "PW")
submit = driver.find_element(By.CLASS_NAME, "btn_style1")
#入力欄を空にする
my_id.clear()
password.clear()
#自動入力したIDとパスワードを入力
my_id.send_keys("自分のID")
password.send_keys("自分が設定したパスワード")
#ログインボタンを自動入力
submit.click()
#ログインの確認のための5秒停止
time.sleep(5)
#ブラウザを閉じる
driver.close()
※seleniumのバージョンによってコードの書き方が変わるらしい
2022/07/02の段階では上のコードで実装できる
自動入力するにあたり、ウェブサイトのソースが必要となる。
サイトを右クリック→「検証」をクリック
サイトのHTMLコードが表示されるので、IDとパスワードを入力するタグを探す。
例として、IDを入力するタグを表示した。
ID入力欄の属性nameがUIDとなっているので上の例のコードのように入力する。
パスワード、ログインボタンも同様に行う。
以上のコードを動かせば、自動でログインログアウトが行われる。
自動ログインを毎日行いたい場合はこのサイトを参照してください。
https://otona-life.com/2022/06/09/121565/
さいごに
今回はログインの自動化のみの記事であるがこの機能を応用すれば、毎日のルーティン作業が自動化が可能となり、かなりストレス軽減されると思う。
実際に健康管理システムの自動入力を実装して以来大学からの催促メールが来なくなり、気が楽になった。
この記事を閲覧していただいた方にはぜひ実装してもらいたい。
----終----