Python

【Python】銀行口座情報の自動取得

投稿日:2019年3月27日 更新日:

目的

銀行口座の預金残高を確認したい。
でも毎回サイトにアクセスしてログインID、パスワードを入力するのが面倒くさい。(そんなことするくらいなら確認しない。)
家計簿アプリに口座情報を連携するのも一つの方法だけど、データをローカルにためて後で自由に分析したい。
そんな自分のニーズを満たすため、 pythonを使って銀行口座にアクセスし、データを取得するスクリプトを書いてみます。

開発環境

  • OS  Windows10
  • ツール Anaconda3(python3)

selenium のインストール

seleniumはブラウザを自動操作できるライブラリです。今回はseleniumを使用してブラウザ経由で自分の口座にアクセスしたいと思います。

Anacondaのインストール時に一緒に用意されるAnaconda promptを開いて、以下を実行し、seleniumをインストールします。

pip install selenium

Chrome Driverをインストールする

次にブラウザ側の必要ツールです。今回はブラウザとしてChromeを使用したいと思います。

seleniumからchromeを自動操作して口座にアクセスする流れです。そのためには、Chrome Driverが必要になります。

以下の手順でインストールします。

  1. Chromeを立ちあげ、右側のメニュー(・3つのやつ)→ヘルプ→Google Chromeについてを開く
  2. Chromeの Chromeのバージョンを確認する
  3. Chromeバージョンに対応したドライバをインストールする
  4. インストールしたドライバを適当なディレクトへ移す。

Pythonスクリプト

以下のようなコードで動かせました。

from selenium import webdriver

print('please input password')
url = <口座サイトURL>
driver = webdriver.Chrome(executable_path=<ドライバPATH>\\chromedriver.exe")
driver.get(url)

id = <あなたのログインID>
psswd  = <あなたのパスワード>

#ID入力(サイト毎に要素は適宜変更する)
search_box = driver.find_element_by_name("ID_NO").send_keys(id)

#パスワード入力(サイト毎に要素は適宜変更する)
search_box = driver.find_element_by_name("PASSWORD").send_keys(psswd)

#ログイン実行(サイト毎に要素は適宜変更する)
search_box = driver.find_element_by_class_name("buttons").click()
print('login success')

#残高の値取得(サイト毎に要素は適宜変更する)
balance = driver.find_element_by_class_name("number").text

#残高表示
print('口座残高は',balance)

#ドライバ終了
driver.quit()


注意点

上記の例ではパスワードを毎回入力する対話式になっています。
もしパスワードをソースコードへ直接記述したい場合はAESによる暗号化などと組み合わせて平文は書かないようにするほうがセキュリティ的にはおすすめです。

-Python

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

【Python】DataFrameの一列をきれいにリストへ変換する

Contents1 概要2 データベースから一列取得する例3 一重リストにする 概要 pythonでデータベースからデータを取得するときに非常に便利なライブラリとしてpandasがあります。read_ …

【Python】決定係数と相関係数の計算

Contents1 目的2 決定係数とは?3 Pythonによる決定係数の計算4 相関係数 目的 前回、あるデータXからデータYの関係を単回帰による線形方程式で表すことを行いました。ただし、これはあく …

Python 辞書型の基本

Contents1 目的2 辞書型データの作成3 要素の取り出し4 全キーの取得5 全値の取得6 全キーおよび値の取得7 リスト型から辞書型への変換8 キーの有無確認9 要素の追加10 要素の削除11 …

【Python】dtreeviz使用時にExecutableNotFound: … ,make sure the Graphviz executables are on your systems’ PATHが出たときの対処

Contents1 概要2 症状2.1 結果3 対処その13.1 結果4 対処その24.1 結果5 まとめ 概要 Pythonの決定木の可視化でビジュアルに優れたdtreevizパッケージのメソッドを …

Pythonの文字列操作

Contents1 目的2 文字列の連結3 文字列の抽出4 文字列の抽出(スライス)5 文字列の繰り返し6 文字数取得7 文字列の分割8 文字列の結合9 文字列の置換 目的 pythonの文字列操作に …

言語切り替え

カテゴリー