16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Python] Webサイトに自動ログイン

Posted at

はじめに

大学の健康管理システムに毎日ログインして健康と入力する作業が面倒と感じたので今回基本となるWebサイトへの自動入力に関する記事を書こうと思いました。
会社員や学生の方にもこういうルーティンワークがある人が参考となると嬉しいです。

開発環境

OS 使用言語 ブラウザ
Windows10 Python Google Chrome

事前準備

まずはGoogle Chromeのversion確認

Google chromeの右上にある3つの点々→「ヘルプ」→「Google Chromeについて」をクリック
スクリーンショット (6).png

自分の場合はバージョン: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)

このコードを動かすとこのように表示される。
スクリーンショット (8).png

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の段階では上のコードで実装できる
  

自動入力するにあたり、ウェブサイトのソースが必要となる。
サイトを右クリック→「検証」をクリック
スクリーンショット (10).png
サイトのHTMLコードが表示されるので、IDとパスワードを入力するタグを探す。
  
例として、IDを入力するタグを表示した。
ID入力欄の属性nameがUIDとなっているので上の例のコードのように入力する。

パスワード、ログインボタンも同様に行う。

以上のコードを動かせば、自動でログインログアウトが行われる。

自動ログインを毎日行いたい場合はこのサイトを参照してください。
https://otona-life.com/2022/06/09/121565/

さいごに

今回はログインの自動化のみの記事であるがこの機能を応用すれば、毎日のルーティン作業が自動化が可能となり、かなりストレス軽減されると思う。
実際に健康管理システムの自動入力を実装して以来大学からの催促メールが来なくなり、気が楽になった。
この記事を閲覧していただいた方にはぜひ実装してもらいたい。

----終----

16
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?