icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,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サイトのログインを自動化する方法について紹介しました。

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

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

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

執筆してくれたメンター

菅繕久(すがよしひこ)

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

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

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

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

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

 

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

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する