1
5

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 3 years have passed since last update.

楽天カード(楽天e-NAVI)サイトにPythonとSeleniumを使ってログインする

Last updated at Posted at 2021-02-23

楽天カード(楽天e-NAVI)のサイトにPythonとSelenium使ってログインする方法を解説します。

※2021/02/23時点の情報です

環境

  • Windows 10
  • Python 3.8
  • Selenium 3.141.0

全体の処理の流れと注意点

全体の処理の流れについては、下記記事に詳しく書いたのでこちらもあわせて確認してみてください。楽天銀行の例になっていますが、処理の流れは同じです。

また、下記記事では他サイトのサンプル一覧と注意点を解説しているのでこちらも参考にしてみてください。

楽天カードサイトでのポイント

全体の処理の流れについては上記記事を参考していただくとして、ここでは楽天カードサイトにおけるポイントを紹介します。

第2パスワードの入力画面がある

楽天e-NAVIは、ID/PASSWORDを入力しログインしたあと、さらに第2パスワードを入力する必要があります。

image.png

ただ、やることは最初のログイン画面と同じで、入力エリアに第2パスワードをsend_keys()で設定し、ログインボタンに対しclick()で画面遷移させます。

# 第2パスワード入力
e = browser.find_element_by_id("indexForm:password")
e.clear()
e.send_keys(PASS2)

# ログイン
button = browser.find_element_by_name("indexForm:j_idt78")
button.click()

サンプルコード全文

#
# 楽天カードサイトへログイン
#

import json
from selenium.webdriver import Firefox, FirefoxOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec

# 設定ファイルを取得
login_info = json.load(open("login_info.json", "r", encoding="utf-8"))

# ログインサイト名
site_name = "card_rakuten"

# ログイン画面URL
url_login = login_info[site_name]["url"]

# ユーザー名とパスワードの指定
USER = login_info[site_name]["id"]
PASS = login_info[site_name]["pass"]
PASS2 = login_info[site_name]["pass2"]

# Firefoxのヘッドレスモードを有効にする
options = FirefoxOptions()
options.add_argument('--headless')

# Firefoxを起動する
browser = Firefox(options=options)

# ログイン画面取得
browser.get(url_login)

# 入力
e = browser.find_element_by_id("u")
e.clear()
e.send_keys(USER)
e = browser.find_element_by_id("p")
e.clear()
e.send_keys(PASS)

# ログイン
button = browser.find_element_by_id("loginButton")
button.click()

# 第2パスワード入力画面
# ページロード完了まで待機
WebDriverWait(browser, 10).until(
    ec.presence_of_element_located((By.ID, "indexForm:password"))
)

# 第2パスワード入力
e = browser.find_element_by_id("indexForm:password")
e.clear()
e.send_keys(PASS2)

# ログイン
button = browser.find_element_by_name("indexForm:j_idt78")
button.click()

# ページロード完了まで待機
WebDriverWait(browser, 10).until(
    ec.presence_of_element_located((By.CLASS_NAME, "rf-font-bold"))
)

# ログインできたか確認(画面キャプチャ取る)
browser.save_screenshot("../screenshots/card_rakuten/home.png")

browser.quit()

ログイン情報設定ファイル

サイトURLやログイン情報(IDやパスワード)は、JSON形式のファイルに保持するようにしています。以下のサンプルでは楽天銀行と楽天カードの2サイトの情報と設定しています。

"id", "pass"の値を書き換えればそのまま使えるはずです。

なお、このファイルだけは絶対に漏洩しないよう、管理方法に注意しましょう!

login_info.json
{
  "bank_rakuten": {
    "id": "1234567890",
    "pass": "password",
    "url": "https://fes.rakuten-bank.co.jp/MS/main/RbS?CurrentPageID=START&&COMMAND=LOGIN"
  },
  "card_rakuten": {
    "id": "1234567890",
    "pass": "password",
    "url": "https://www.rakuten-card.co.jp/e-navi/"
  }
}
1
5
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
1
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?