Ryosuke IMAI | yoma_k

Personal website

楽天Edyのサイトから利用履歴を取得したい

Posted at — Jul 5, 2015
Tweet

最近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にするのがベストっぽいです。

いつか自動ログイン化に取り組みたいです。