1
2

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-25

#はじめに
先日、ラズパイをゲットして初期の構築しました。
早速、これまでmacOSやAWSで実行していたPythonをラズパイで実行してみたいと思います。
今回は過去に記事にした以下の自動ログインをラズパイで実行してみたいと思います。

#環境
・macOS Catalina 10.15.7
・Sanoov Raspberry Pi 3 Model b+
 購入したものはAmazonで以下になりますのでご参考ください。

#手順
####1.Pythonのバージョンを確認します
ラズパイ3 Model b+には初期でPythonがインストールされいます。ですが、Pythonのバージョンがわかりません。そこで以下のコマンドでバージョンの確認をします。ターミナルはデフォルトで[LXTerminal]が入っています。

$ python --version
Python 2.7.16

$ python3 --version
Python 3.7.3

ふむふむ。Python2系と3系が両方入っていますね。なので、Python3系を利用されたい場合は、pip3でライブラリのインストールをしていくことになるかと存じます。違いが気になる方は以下もご確認ください。

####2.macOSで利用していたプログラムをラズパイに移動させます。
方法は以下の記事でご確認ください。

####3.ラズパイにseleniumをインストールします。

$ sudo pip3 install selenium

Successfully installed selenium-3.141.0

####4.ラズパイでChromiumのバージョンを確認します。
ラズパイにはブラウザのChromiumがインストールされています。このバージョンを確認します。
ブラウザ開く > 右上の「・・・」(設定) > [Chromiumについて]
今は**「88.0.4324.187」**ですね。

image.png

ここで、以下のコマンドでChromiumを最新バージョンにアップデートします。

$ sudo apt-get update
$ sudo apt-get install chromium-browser

もう一度バージョンを確認してください。
アップデート後は**「92.0.4515.98」**になりました。(2021/9/25)
image.png

####4.ラズパイに上記のバージョンにあったchromiumドライバーをインストールします。
以下のサイトにアクセスします。

[stage for security update]をクリックします。
スクリーンショット 2021-09-25 11.42.30.png

今回インストールしたいバージョンがないので[view packege details]をクリックします。

スクリーンショット 2021-09-25 11.44.33.png

Package name containsに[chromium-browser]と入力し、
Published(発行済み)→Superseded(後継)に変更し、Filterをクリックします。
中から、今回欲しい「92.0.4515.98」を見つけます。完全一致しなくとも、メジャーバージョン(今回なら92)が合っていれば動作するかと思います。(ただし、未検証)

スクリーンショット 2021-10-25 15.36.34.png

Buildsの中から、[armhf]を選択します。
スクリーンショット 2021-10-25 15.38.50.png

下にスクロールして、
chromium-chromedriverとだけあるものを探します。2つあります。その中でdbgsymがない方を右クリックしてURLをコピーします。メモ帳に貼って、ラズパイ側に送ってください。
スクリーンショット 2021-10-25 15.41.45.png

ラズパイメモの先頭に'sudo wget 'を付け加えてターミナルで実行します。

$ sudo wget https://launchpad.net/~canonical-chromium-builds/+archive/ubuntu/stage/+build/21987959/+files/chromium-chromedriver_92.0.4515.159-0ubuntu0.18.04.1_armhf.deb

次にインストールするために以下のコマンドを打ちます。
sudo dpkg -i の後にダウンロードしたファイル名を貼り付けます。

$ sudo dpkg -i chromium-chromedriver_92.0.4515.159-0ubuntu0.18.04.1_armhf.deb

####5.ラズパイでSBI証券のTOPページに行けるか以下のPythonプログラムを実行します。

SBI_ACCESS.py
from selenium import webdriver

driver = webdriver.Chrome(executable_path="/usr/lib/chromium-browser/chromedriver")
driver.get("https://www.sbisec.co.jp/ETGate")

うまくいったら、次はIDとPWを入力します。その前にラズパイにIDとPWを記載したテキストを配置します。
ラズパイの以下の場所にIDファイルとPWファイルを配置します。場所はやフォルダ名は任意です。

/usr/hiroki/Info/ID.txt
/usr/hiroki/Info/PW.txt

以下がラズパイでSBI証券にログインする際の実行プログラムです。

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

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

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

#↓chromedriverを呼び出しています。その後、SBI証券のホームページにアクセスしています。
driver = webdriver.Chrome(executable_path="/usr/lib/chromium-browser/chromedriver")
driver.get("https://www.sbisec.co.jp/ETGate")

#↓ユーザIDを読み込んだテキストから貼り付けています。
elem_id_word = driver.find_element_by_name("user_id")
elem_id_word.send_keys(IDdata)

#↓PWを読み込んだテキストから貼り付けています。
elem_id_word = driver.find_element_by_name("user_password")
elem_id_word.send_keys(PWdata)

#↓ログインボタンを押しています。
elem_id_btn = driver.find_element_by_xpath("/html/body/table/tbody/tr[1]/td[2]/form/div/div/div/p[2]/a/input")
elem_id_btn.click()

#最後に
いかがでしたでしょうか。ラズパイでseleniumは動きましたでしょうか。
5,000円でできる自動化プログラムって感じですね。

ただ、動きはmacOSに比べるとまったりしています。動けばいいんですが。
ラズパイでのGUI操作の自動化は安定しないのかもしれません。

ご参考になれば幸いです。

1
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?