#はじめに
皆さんは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」ですね。
ChromeDriverをダウンロードする。以下のサイトにあります。
https://chromedriver.chromium.org/downloads
Topページにさっそく「Supports Chrome version 93」と記載のあるChromeDriverがありました。今回はChromeブラウザのバージョンが93なので、これでOKです。
####4.IDとPWファイルを用意します。
方法は以下をご参考ください。
####※はまり注意※
IDやPWファイルに「改行」が入っているとSeleniumは[Enter]として認識します。
予期せぬ動きをしますので気をつけて下さい。
#プログラム
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通知しています。
ご参考になれば幸いです。