6
10

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.

【Python】SBI証券に自動ログインしてみた

Last updated at Posted at 2021-09-10

#はじめに
皆さんはPythonを使って何を実現したいでしょうか。
私は毎日の単純作業を自動化し、Lineに通知することを実現したいと思っています。
Lineは毎日使うアプリだし、LineNotifyへの連携も容易です。

証券会社のHPへログインした後に毎日確認したことはありますか?
そんな第一歩としてまずは自動ログインしてみました。

#環境
Python3.9
macOS Catalina10.15.7
Chrome 93.0.4577.63

#事前準備
####1.Python3.X系をインストールします。(詳細は割愛します)
####2.seleniumをインストールします。
ターミナルを起動して以下のコマンドを入力します。管理者パスワードを入れるとインストールできます。

  $ sudo pip3 install selenium

この時、macOSにpython2.Xが既にインストールされている場合[pip3]ではなく[pip]でインストールした場合少しはまりますのでご注意ください。詳細は以下です。

####3.ChromeDriverをダウンロードして好きな場所に配置します。
今回は以下に配置します。

/Users/Hiroki/Info/chromedriver

ダウンロード前にまずmacにあるChromeブラウザのバージョンを確認します。
Chromeを開く > 右上の「・・・」(設定) > [ヘルプ] > [Google Chromeについて]
今は「93.0.4577.63」ですね。
スクリーンショット 2021-09-11 7.42.40.png

ChromeDriverをダウンロードする。以下のサイトにあります。
https://chromedriver.chromium.org/downloads
スクリーンショット 2021-09-11 7.44.59.png
Topページにさっそく「Supports Chrome version 93」と記載のあるChromeDriverがありました。今回はChromeブラウザのバージョンが93なので、これでOKです。

####4.IDとPWファイルを用意します。
方法は以下をご参考ください。

####※はまり注意※
IDやPWファイルに「改行」が入っているとSeleniumは[Enter]として認識します。
予期せぬ動きをしますので気をつけて下さい。

#プログラム

SBI_login.py
from selenium import webdriver#←seleniumからwebdriverをインポートします。変更不要です。

#↓IDファイル名や置き場を書き換えて下さい。
ID = open('/Users/Hiroki/Info/ID.txt', 'r', encoding='UTF-8')
IDdata = ID.read()

#↓PWファイル名や置き場を書き換えて下さい。
PW = open('/Users/Hiroki/Info/PW.txt', 'r', encoding='UTF-8')
PWdata = PW.read()

#↓chromedriverの置き場を書き換えて下さい。
driver = webdriver.Chrome("/Users/Hiroki/Info/chromedriver")
driver.get("https://www.sbisec.co.jp/ETGate")
        
#↓ログインIDの自動入力です。変更不要
elem_id_word = driver.find_element_by_name("user_id")#←現在のSBI証券の要素名
elem_id_word.send_keys(IDdata)

#↓ログインPWの自動入力です。変更不要
elem_pw_word = driver.find_element_by_name("user_password")#←現在のSBI証券の要素名
elem_pw_word.send_keys(PWdata)

#↓ログインボタンの自動入力です。変更不要
elem_login_btn = driver.find_element_by_xpath("/html/body/table/tbody/tr[1]/td[2]/form/div/div/div/p[2]/a/input")#←現在のSBI証券のログインボタンのxpathです。
elem_login_btn.click()

#最後に
ログインできましたでしょうか。
これは第一章として、ログイン後何をしたいかが重要かと思います。
私はIPOの有無を確認してLine通知しています。
ご参考になれば幸いです。

6
10
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
6
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?