PythonでSeleniumを利用してWebサイトのログインを自動化する方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonでSeleniumを利用してWebサイトのログインを自動化する方法について現役エンジニアが解説しています。Selenium(セレニウム)とはブラウザを自動で操作することがオートメーションツールです。Pythonでseleniumを利用してログインを自動化してみましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

PythonでSeleniumを利用してWebサイトのログインを自動化する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

 

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まるでしょう。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PythonでSeleniumを利用してWebサイトのログインを自動化する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

Seleniumとは

Selenium(セレニウム)とは、ブラウザを自動で操作することが可能なオートメーションツールです。

Seleniumを使用することでブラウザ上での様々な操作をプログラムで自動化することが可能です。

Seleniumのログイン処理の実装方法

Google chrome上での自動ログイン処理の実装方法について、みていきましょう。

まず、Chromeのインストールからスタートし、完了後にSeleniumのインストールを行います。

Seleniumはpipを使用してインストールできます。

ターミナル上では、下記コマンドを入力してインストールを行いましょう。

pip install selenium

 

次に、ログイン処理に使用するseleniumコマンドを紹介します。

ログインまでの一連の流れとして下記のような手順を行いましょう。

  1. 対象ページにアクセスする
  2. ログインページを開く
  3. ID・PASSを入力する
  4. ログインボタンをクリックする

URLを開くコマンド
.get(URL)

テキストボックスに入力するコマンド
.send_keys(“キーワード”)

クリックするコマンド
.click()

 

[PR] Pythonで挫折しない学習方法を動画で公開中

実際に書いてみよう

下記サンプルコードを参考にPythonでseleniumを利用して、Webサイトのログインを自動化する方法について解説します。

サンプルコード

# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# ブラウザを開く。
driver = webdriver.Chrome(executable_path='ウェブドライバを設置したフルパス')
# Googleの検索TOP画面を開く。
driver.get("https://www.yahoo.co.jp/")
# 3秒待機
time.sleep(3)
# ログインボタンをクリックする
login_btn = driver.find_element_by_xpath('//*[@id="Login"]/div/p[1]/a')
login_btn.click()
# 1秒待機
time.sleep(1)
# ログインIDを入力
login_id = driver.find_element_by_name("login")
login_id.send_keys("ログインIDを入力")
# 次へボタンをクリック
next_btn = driver.find_element_by_name("btnNext")
next_btn.click()
# 1秒待機
time.sleep(1)
# パスワードを入力
password = driver.find_element_by_name("passwd")
password.send_keys("パスワードを入力")
#ログインボタンをクリック
login_btn = driver.find_element_by_name("btnSubmit")
login_btn.click()
#10秒待機
time.sleep(10)
# ブラウザを終了する。
driver.close()

 

実行結果

コードを実行すると、ブラウザが自動で起動してYahooのトップページを開くことが可能です。

PythonでSeleniumを利用してYahoo Japanのトップページを開いた状態

まず、ログイン画面へアクセスしID入力後、次へボタンをクリックしましょう。

PythonでSeleniumを利用してYahoo Japanのトップページからログイン画面へアクセスした状態

PythonでSeleniumを利用してYahoo Japanのログイン画面にIDを入力した状態

次にパスワードを入力し、ログインボタンをクリックします。

PythonでSeleniumを利用してYahoo Japanのログイン画面にパスワードを入力した状態。

ログイン処理後のYahooトップページが表示されました。

PythonでSeleniumを利用してログイン処理後のYahooトップページが表示された状態。

 

解説

コード8行目でseleniumを使用し、Yahooトップページへアクセスしています。

コード12-13行目は、トップページ上のログインボタンをクリックする設定です。

この時、ログインボタンの要素はXpath形式で’//*[@id=”Login”]/div/p[1]/a’を指定している状態です。

 

要素の取得方法は、

コード17-18は、send_keysを使用しログインIDを入力します。

コード20-21は、click()コマンドを使用し次へボタンをクリックする設定です。

コード25-26は、send_keysを使用しパスワードを入力しています。

コード28-29は、click()コマンドを使用してログインボタンをクリックしています。

実行すると、実行結果の一連の動作が自動で処理されることが確認できるでしょう。

要素の取得方法

1.要素を取得したいページを開いた状態で右クリック→検証を選択

Seleniumを利用して起動したchromeで要素を取得したいページを開いた状態で右クリック→検証を選択する画面

2.ブラウザ右側に検証ツールのコンソールが出現するため、コンソール左上のセレクトボタンをクリックしてオン(青色)状態にする

ブラウザ右側に表示される検証ツールのコンソール画面

3.取得したい要素をクリックして対象ソース部分をハイライトする

chromeで取得したい要素をクリックして対象ソース部分をハイライトした画像

4,ハイライトしたソース上で右クリック→Copy→Copy Xpathを選択

ハイライトしたソース上で右クリック→Copy→Copy Xpathを選択して要素をコピーした画像

これで要素がクリップボードに取得できるため、あとはプログラム上に貼り付けましょう。

まとめ

今回は、Pythonでseleniumを利用して、Webサイトのログインを自動化する方法について紹介しました。

この技術は、現在様々な分野で主力となってきているライブラリです。

ブラウザ上での様々な自動処理が可能になるため、応用範囲が広くなるでしょう。

 

執筆してくれたメンター

菅繕久(すがよしひこ)

現在はフリーランスのエンジニアをしていてプログラミング歴は8年目になります。

普段は Python、FileMaker等を使って様々な業務で活用できるIoTプロダクトRPAツールを作成しています。

開発実績としては、業務自動化ツール(在庫管理・発注・ファイル操作 etc)、電子カルテシステム、ロボット用プログラムなどがあります。

TechAcademyではPythonコースを担当しております。

 

大石ゆかり

PythonでSeleniumを利用してWebサイトのログインを自動化する方法がよく分かったので良かったです!

田島悠介

ゆかりちゃん、これからも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。