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 でスクレイピングしてみる

Python と Selenium でスクレイピングのお勉強です。

Selenium は外部プログラムから Web ブラウザを操作することができる仕組みで、元々は Web アプリケーションのテスト自動化のためのツールだったようです。クリック、キー操作を外部アプリから操作できるので、技術的にはWebブラウザでできる全てのことを自動化するが可能です。

Selenium を使える言語としては Java, ruby, C#, Python, JavaScript のバインディングがあるのですが、Web を探してみるとスクレイピングの使い方としては Python + Selenium の情報量が圧倒的に多いため、Python で使ってみたいと思います。一般的には、Python + Selenium(ブラウザ制御) + Beautiful Soup(HTMLパーサ) の構成が多いようです。

概要をサラッと知るには Web よりも本のほうが良さそうなので、以下の書籍を買ってみました。
“Python + Selenium でスクレイピングしてみる” の続きを読む