Skip to main content

Zaimのデータを取得・操作するPythonパッケージ

Project description

pyzaim

PyPI version All Contributors

logo

Zaimのデータを取得・操作するPythonパッケージ

概要

大きくわけて2つの処理を行うパッケージです。

  • Zaim APIのラッパークラス
    • Zaim APIのアクセストークンの発行
    • Rest APIとして提供されている処理の実行
  • Seleniumを用いたデータ取得
    • Zaimにはクレジットカードや銀行口座から自動でデータ取得する機能があるが、APIではそれらのデータにはアクセスできない
    • これらの情報を取得するため、Seleniumのwebdriver(Chrome)を用いてデータを取得

インストール

pip install pyzaim

準備

  • Zaimアカウントの作成
  • Zaim Developersでのアプリケーションの登録 (コンシューマID、コンシューマシークレットの発行)
  • Google Chromeおよびseleniumの導入

使い方

Zaim APIのラッパークラスの使い方

  • アクセストークンの発行
from pyzaim import get_access_token

get_access_token()

# コンシューマIDとコンシューマシークレットを聞かれるので入力
# 認証ページのURLが表示されるので、アクセスして許可
# 遷移先ページのソースコードから「oauth_verifier」と書いてあるコードをコピーして入力
# 問題なければアクセストークンとアクセスシークレットが表示される
  • APIを利用してデータを取得・操作
from pyzaim import ZaimAPI

api = ZaimAPI('コンシューマID', 'コンシューマシークレット',
              'アクセストークン', 'アクセスシークレット', 'verifier')

# 動作確認 (ユーザーID等のデータが取得されて、表示されればOK)
print(api.verify())

# データの取得
data = api.get_data()

# 支払いデータの登録
api.insert_payment_simple('日付(datetime.date型)', '金額(int)', 'ジャンル名',
                          '口座名', 'コメント', '品名', '店舗名') # 後半4つは任意入力

# 使用できるジャンル名は以下で確認できる
print(api.genre_itos)

# 使用できる口座名は以下で確認できる
print(api.account_itos)

# 支払いデータの更新 (更新対象データのIDはapi.get_data()で確認)
api.update_payment_simple('更新対象データのID', '日付(datetime.date型)', '金額(int)',
                          'ジャンル名', '口座名', 'コメント', '品名', '店舗名') # 後半4つは任意入力

# 支払いデータの削除
api.delete_payment('削除対象のデータのID')

seleniumを用いたデータ取得

from pyzaim import ZaimCrawler

# Chrome Driverの起動とZaimへのログイン、ログインには少し時間がかかります
crawler = ZaimCrawler('ログインID', 'ログインパスワード',
                    driver_path='Chrome Driverのパス'(PATHが通っていれば省略可),
                    headless=False) # headlessをTrueにするとヘッドレスブラウザで実行できる

# データの取得 (データの取得には少し時間がかかります、時間はデータ件数による)
data = crawler.get_data('取得する年(int)', '取得する月(int)', progress=True) # progressをFalseにするとプログレスバーを非表示にできる

# 終了処理
crawler.close()

ブランチの運用について

本リポジトリのブランチについては以下の運用といたします。

main

  • リリース用ブランチ。
  • このブランチにマージした時点で新たにタグを打ち、PyPIにアップロードします。
  • このブランチには直接PRを出さないでください。

develop

  • 開発用の常駐ブランチ。
  • すべてのコミットはこのブランチに一度マージし、動作を確認した上でmainにマージします。
  • PRはこのブランチに対して行ってください。

feature-*

  • 新規開発用のブランチ。
  • 必ずdevelopから分岐し、developにマージする。
  • *には開発やバグ修正などの対応内容を簡潔に記入。
    • 例: feature-add-headless-mode

Contributors ✨

Thanks goes to these wonderful people (emoji key):

りーべ
りーべ

📆 👀 💻 📖
Ponk02
Ponk02

💻
zenjiro
zenjiro

💻 👀
omatsu555
omatsu555

💻
Y.Tory
Y.Tory

💻
o-matsu
o-matsu

💻
kefi550
kefi550

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyzaim-1.1.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

pyzaim-1.1.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file pyzaim-1.1.0.tar.gz.

File metadata

  • Download URL: pyzaim-1.1.0.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.10.12 Linux/5.15.146.1-microsoft-standard-WSL2

File hashes

Hashes for pyzaim-1.1.0.tar.gz
Algorithm Hash digest
SHA256 fe21581c03af6ac52bb4a57add0a0573f2cc1738b353a72db308d168a8ed09bb
MD5 86b6bb440bdaeeff2d62e4d1bd36770e
BLAKE2b-256 3a9ebb86ed92f157ac8ab7458512769ac368bd0d290a141add70545414ae169a

See more details on using hashes here.

File details

Details for the file pyzaim-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyzaim-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.10.12 Linux/5.15.146.1-microsoft-standard-WSL2

File hashes

Hashes for pyzaim-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 df67e7789f11fc9509956d5842ca4b3d541da95bec77180b1db8e526e6176d42
MD5 014cf90a825a1fd8422746075a6edf09
BLAKE2b-256 c97bc0daff080f137036d262577fa789b92b0f1805eeaf2b955bc75057f64479

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page