2018年12月6日から、MoneyForwardのCSVアップロード機能が突如利用できなくなりました。
我が家では夫婦個別の支出を各々好きなサービスで管理(Zaimとか)し、家計全体の支出はMoneyForwardで管理する、といった運用をしていたためCSVアップロード機能がなくなってしまうと、別のサービスから出力した支出データを全て手動で入力しなければならず、大打撃。。。。。。
毎月100レコードほどのデータ量になるため、手動投入はとても面倒かつ非生産的作業なので、自動化するスクリプトを作成しました。
GitHubで公開しています。
https://github.com/yyosuke/Upload2MoneyForward
#プログラム概要
seleniumを用いてWebブラウザ上での投入操作を自動的に行う処理となります。
※急いで作成したので、一部イケてない部分や汎化できていない部分がありますが、それは追々必要に応じて修正していきます。
利用する際は自己責任でお願いします。
#環境
- OS:MacOS10.14.4
- Python 3.6.3
- selenium 3.141
- ChromeDriver 73.0.3683.103
#利用までの準備
GitHubの方に流れは書いていますが、seleniumとChromeDriverの準備が必要です。
以下のページが参考になります。
https://www.inet-solutions.jp/technology/python-selenium/
ChromeDriverはパスを通すか、プログラムと同じディレクトリに配置してください。
またMoneyForwardにログインする必要がありますので、ソース内のアカウント情報を書き換えてください。
user = "input your userid"
password = "input your password"
#インプットデータのフォーマット
インプットのCSVデータフォーマットは以下です。
文字コードはUTF-8のみ許容しています。
項目番号 | 設定値 | 説明 |
---|---|---|
1 | date | 収支が発生した日付(yyyy/mm/dd) |
2 | large-category | 大分類(食費や通信費など) |
3 | middle-category | 中分類(カフェや外食など) |
4 | content | 任意項目 |
5 | price | 金額。支出の場合は-(マイナス)、収入は+(プラス)で入力してください。 |
サンプルを以下に示します。
1行目は無視されますので、実際のデータは2行目から記載してください。
日付,大分類,中分類,備考,金額
2019/01/17,食費,カフェ,ドトール,-250
2019/01/20,収入,給与,夫, 400000
#接続のテスト
以下のコマンドをターミナルから実行します。
python uploadCSVtoMF.py xxxxxxxx.csv
# xxxxxxxx.csvは作成したcsvファイル名
Chromeが起動し、自動ログインされ投入が開始されます。
以上です。