最近GnuCashを使い始めました。 銀行やクレジットカードの利用履歴をネットからCSV等でエクスポートして、 GnuCashにインポートすればあっという間に家計簿がつけられます。
マネーフォワード等の完全自動形式のサービスに比べれば手間はかかっているけど、 セキュリティ面では有利な上、ローカルにデータが残るのでメリットはあると思う。
最近、個人的に楽天Edyとよばれる電子マネーを使う機会が増えているのですが、 その利用履歴はWebサイト上で表示できるだけでダウンロードできませんでした。
そこで利用履歴のCSVを生成するコードをPythonで書きました。
HTMLのパーサーには簡単そうに見えたBeautifulSoupを採用しました。
フロントエンドの事情に疎いので何故かわかりませんが、InputタグのValueにほしいデータがJSONとして格納されていたので、それを引っ張り出します。
{% highlight python %} soup = BeautifulSoup(html) d = eval(soup.find(id=“his_record”)[‘value’]) {% endhighlight %}
この2行でそれをやっています。予想以上に簡単に済みました。
あとはそれを原始的な文字列操作でCSVとして整形します。 この部分はかなり問題が起きそうだけど、問題が起きた時に考えることにします。 今のところ問題なく動いているし。
自動でログインしてHTMLを取得できればよかったけど、楽天のログイン周りがよくわからなかったので潔く諦めました。 HTMLを標準入力で受け付けて、CSVを標準出力に出力するシンプルな仕様です。
現段階では手動でソースをコピーしそれをvimに貼り付けて:!python rakutenedy_csv.py
でCSVにするのがベストっぽいです。
いつか自動ログイン化に取り組みたいです。