Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/beomi/simple_bank_korea

simple crawler for Korean banks with Transactions
https://github.com/beomi/simple_bank_korea

bank crawler

Last synced: about 4 hours ago
JSON representation

simple crawler for Korean banks with Transactions

Awesome Lists containing this project

README

        

# Simple Bank Korea [![PyPI version](https://badge.fury.io/py/simple-bank-korea.svg)](https://badge.fury.io/py/simple-bank-korea) [![Build Status](https://travis-ci.org/Beomi/simple_bank_korea.svg?branch=master)](https://travis-ci.org/Beomi/simple_bank_korea) [![codecov.io](https://codecov.io/github/Beomi/simple_bank_korea/coverage.svg?branch=master)](https://codecov.io/github/Beomi/simple_bank_korea?branch=master)

## Simplest Transaction Crawler for Korea Banks

Requirements:

- bs4 (BeautifulSoup4)
- requests
- python-dateutil
- selenium
- pillow (PIL)
- PhantomJS Binary (Automatically Download, but `libfontconfig` is dependency on Linux)

## Install

Install package with pip:

```bash
pip install -U simple_bank_korea
```

## KB (Kookmin Bank)

Currently supports KB국민은행(Kookmin Bank) only.

### Before Use

You must activate '빠른조회' service for each banks.

> check this: https://obank.kbstar.com/quics?page=C025255&cc=b028364:b028702&QSL=F#

You can only use service('빠른조회')-registered bank accounts.

### Usage

Import functions from each bank:

```python
from simple_bank_korea.kb import get_transactions

# get_transactions returns list of dicts
# like this:
# [{'transaction_by': '', 'date': datetime.datetime(2017, 9, 11, 12, 39, 42), 'amount': 50, 'balance': 394}]

# example
transaction_list = get_transactions(
bank_num='47380204123456',
birthday='941021',
password='5432',
# days=30, # Optional, default is 30
# PHANTOM_PATH='/Users/beomi/bin/phantomjs', # Optional, default is 'phantomjs' only.
# LOG_PATH='/Users/beomi/phantom.log' # Optional, default is os.path.devnull (no log)
)

for trs in transaction_list:
print(trs['date'], trs['amount'], trs['transaction_by'])
```

`get_transactions()` needs `bank_num`, `birthday` and `password`. and optionally you can use `days` arg for specific days from today.(default is 30days(1month))

#### Require Args

- `bank_num`: Your account number. (String)
- `birthday`: Your birthday with birth year(if 1994/10/21, do '941021'), 6 digits. (String)
- `password`: Your bank account password. (String)

#### Optional Args

- `days`: Days you want to get datas. Default is 30 days. (Integer)
- `PHANTOM_PATH`: Your PhantomJS Binary file Location.
Default is 'phantomjs', expecting registered in PATH.
(If `phantomjs` is not in PATH, automatically download)
- `LOG_PATH`: Path for phantomjs log file. Default is no logging.

#### Return types

`get_transactions()` returns list of dicts, and each dict has `date`, `amount`, `balance` and `transaction_by`.

- `get_transactions()`: returns list of transaction dicts.

- `date`: datetime
- `amount`: int
- `balance`: int
- `transaction_by`: str

## Update Log

#### 0.2.15 (2020-06-04)

- HotFix bugs on `setup.py`

#### 0.2.14 (2020-06-04)

- Fix bugs #4: (downloaded) phantomJS permission error

#### 0.2.13 (2020-06-04)

- Fix bugs when downloading phantomjs.
- Fix affects on Linux and macOS only.
- Add Guide(OS, Progress) when dowloading phantomjs.

#### 0.2.10 (2017-11-11)

- Hot-fix: implicitly import to explicit relevant import to prevent `ImportError`

#### 0.2.9 (2017-11-11)

- Download PhantomJS Binary if `phantomjs` is not in PATH

#### 0.2.8 (2017-09-18)

- Add caching strategy (using temp folder with saving touch-keys)
- Fix typo in v0.2.7