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

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

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

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

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

…続きを読む

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

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

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

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

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

…続きを読む

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 を使うと比較的簡単にスクレイピングができるということを知ったので、アカウントアグリゲーションのアプリを作ってみようと思い立ちました。

Pythonは初心者だし、Selenium なんて使ったことなかったけど、世の中の流れについていくためにも、勉強がてら作ってみようかなと。

アカウントアグリゲーションの説明はWikipediaに任せるとして、なぜこんなものを作りたいのかというと、私はスタンドアロン型のアカウントアグリゲーション・アプリを使いたいのですが、現時点で主要なアカウントアグリゲーションサービス/アプリはすべてサーバ型(クラウド型)なのです。

…続きを読む

Xubuntuに乗り換えました

Ubuntu 18.04 を入れたばっかりですが、Xubuntu に乗り換えました。

以前から Unity が肌に合わなくて、Ubuntu を入れてもすぐに gnome-fallback/flashback を入れて Gnome2 相当で使っていたのですが、Unity から Gnome3 に変わったのでしばらく使ってみたところ、Unity の頃の Ubuntu に比べて格段に使いやすくなりましたね。

デフォルトの Alt + Tab のアプリケーション切り替えが変態仕様だったり、細かいところは気に入らないところもありますが、カスタマイズすれば違和感ない使い勝手になってくれるので気に入りました。

ただ・・・。
Gnome3 の UI は JavaScript で動作する Web ベースに近いとは聞いていたのですが、やはりメモリを非常に食うようで・・・。

…続きを読む