しまぞうブログ

プログラミングと資産運用

【Selenium】Pythonで自動ログインするサンプルプログラム【Chrome】

作業を自動化したいとき、サイトにログインする必要があることも多いです。本記事では自動でログインする方法について、サンプルプログラムを交えて解説します。

なお、本記事の手順を実行するには、事前にSeleniumのインストール必要です。

shimazoh.hatenablog.com

作業環境

  • Windows10
  • Anaconda 4.10
  • Python 3.8

サンプルプログラム

楽天e-naviにログインするサンプルプログラム

楽天e-naviにログインするサンプルプログラムです。

他のサイトにログインする場合、基本的には6,10,11行目を変更することになります。

import time
from selenium import webdriver

driver = webdriver.Chrome("C:\\chromedriver.exe")  # ドライバ保存先

driver.get('https://www.rakuten-card.co.jp/e-navi/') # 目的のサイトにアクセス

time.sleep(1)

mailAddress = driver.find_element_by_name('u')  # メールアドレスの入力領域を取得
password = driver.find_element_by_name('p')     # パスワードの入力領域を取得

mailAddress.clear()  # メールアドレスの入力領域を初期化
password.clear()     # パスワードの入力領域を初期化

mailAddress.send_keys("mail address")   # メールアドレスを入力
password.send_keys("password")          # パスワードを入力

mailAddress.submit()

10,11行目の要素の取得はWebページにアクセスし、右クリックメニューの「検証」を使用して調べます。詳細はこちらのサイトが参考になります。

岡三オンライン証券にログインするサンプルプログラム

別の例として、岡三オンライン証券のサイトにログインするサンプルプログラムをご紹介いたします。

6,10,11行目以外に19行目以降も変更が必要です。このあたりはサイトによってまちまちです。

import time
from selenium import webdriver

driver = webdriver.Chrome("C:\\chromedriver.exe")  # ドライバ保存先

driver.get('https://www.okasan-online.co.jp/login/jp/')

time.sleep(1)

account = driver.find_element_by_name('account')    # ログインID入力領域を取得
password = driver.find_element_by_name('pass')      # パスワード入力領域を取得

account.clear()
password.clear()

account.send_keys("Login ID")     # ログインIDを入力
password.send_keys("password")    # パスワードを入力

driver.find_element_by_name('buttonLogin').submit() # 証券総合取引口座にログイン

time.sleep(1)

driver.find_element_by_name('buttonOK').click()  #ログイン後のOKボタンをクリック

参考サイト