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コマンドを紹介します。
ログインまでの一連の流れとして下記のような手順を行いましょう。
- 対象ページにアクセスする
- ログインページを開く
- ID・PASSを入力する
- ログインボタンをクリックする
URLを開くコマンド
.get(URL)
テキストボックスに入力するコマンド
.send_keys(“キーワード”)
クリックするコマンド
.click()
実際に書いてみよう
下記サンプルコードを参考に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のトップページを開くことが可能です。
まず、ログイン画面へアクセスしID入力後、次へボタンをクリックしましょう。
次にパスワードを入力し、ログインボタンをクリックします。
ログイン処理後の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.要素を取得したいページを開いた状態で右クリック→検証を選択
2.ブラウザ右側に検証ツールのコンソールが出現するため、コンソール左上のセレクトボタンをクリックしてオン(青色)状態にする
3.取得したい要素をクリックして対象ソース部分をハイライトする
4,ハイライトしたソース上で右クリック→Copy→Copy Xpathを選択
これで要素がクリップボードに取得できるため、あとはプログラム上に貼り付けましょう。
まとめ
今回は、Pythonでseleniumを利用して、Webサイトのログインを自動化する方法について紹介しました。
この技術は、現在様々な分野で主力となってきているライブラリです。
ブラウザ上での様々な自動処理が可能になるため、応用範囲が広くなるでしょう。
執筆してくれたメンター
菅繕久(すがよしひこ)
現在はフリーランスのエンジニアをしていてプログラミング歴は8年目になります。 普段は Python、FileMaker等を使って様々な業務で活用できるIoTプロダクトRPAツールを作成しています。 開発実績としては、業務自動化ツール(在庫管理・発注・ファイル操作 etc)、電子カルテシステム、ロボット用プログラムなどがあります。 TechAcademyではPythonコースを担当しております。 |
PythonでSeleniumを利用してWebサイトのログインを自動化する方法がよく分かったので良かったです!
ゆかりちゃん、これからも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。