accagg開発日記: パスワード管理とFactoryの導入

ちょっと間が空いてしまいましたが、ほそぼそと開発中です。

今まではパスワードをコードに直書きだったのですが、外部ファイルから読み出すようにしました。そのために PasswordManager というクラスを追加しました。PasswordManager.get(“アカウント名”) でパスワードなどの情報を Dictionary で返します。

また、Aggregatorクラスを生成するFactoryパターンを見様見まねで導入してみました。Factory.aggregator(“BANKID”) で、IDに応じた Aggregator を生成します。BANKIDはそのまま python のモジュール名にして BANKID.Aggregator のインスタンスを生成するようにしたので、Aggregator を追加しても Factory クラスに手を入れる必要はなく、簡単に Aggregator を追加できるようにしてみました。

例によって練習中のクラス図です。

“accagg開発日記: パスワード管理とFactoryの導入” の続きを読む

accagg開発日記: クラス分けとCSV形式での保存

開発しているとリポジトリ名とか何かとプロジェクトに名前が必要になるので、Account Aggregator を縮めて accagg と名付けました。

前回まででとりあえず三井住友銀行の取引明細を取得することができたので、データを正規化してCSV形式に保存することを考えます。セキュリティを考えると平文のCSV形式なんて論外なのですが、そこは後々実装します。試す場合は個人の責任でお願いします。

前回は main にすべての処理を書いていたので、今後のことを考えてクラス分けしてみます。作ってみたクラス図は以下です。

正直クラス図が合ってるかわかりません(汗 なんとなくやりたいことが伝わればいいかな。

“accagg開発日記: クラス分けとCSV形式での保存” の続きを読む

Python + selenium で銀行の明細が取得できた

間が空いてしまいましたが、三井住友銀行の取引履歴を取得できるようになりました。

最初は真面目にHTMLをパースしようかと思ったのですが、三井住友銀行では取引履歴を CSV ファイルとして取得する機能があったので、CSV を取得して解析することで手抜きしています。

selenium の webdriver をより便利に使えるように、 webdriver クラスを継承した Browser というクラスを用意しました。webdriver に関してよく使うようなユーティティ関数を追加していこうと思ってます。

クラス図的にはこんな感じ?

“Python + selenium で銀行の明細が取得できた” の続きを読む