LoginSignup
9
8

More than 3 years have passed since last update.

[python]MoneyForwardにCSVアップロードする処理を作ってみた

Last updated at Posted at 2019-05-01

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が起動し、自動ログインされ投入が開始されます。

以上です。

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8