KB ๊ตญ๋ฏผ์ํ ๊ณ์ข ์กฐํ
์ ๋ง๋ค์๋์?
KB๊ตญ๋ฏผ์ํ์์ ์๋ '๋น ๋ฅธ์กฐํ'์๋น์ค ์ฌ์ดํธ๊ฐ ๋ณ๊ฒฝ๋์ด ๊ธฐ์กด์ Github์ ๋์๋ค๋๋ ์กฐํ ๋๊ตฌ๊ฐ ๋ฌด์ฉ์ง๋ฌผ์ด ๋์ด, Selenium์ ์ฌ์ฉํ ํฌ๋กค๋ง ๋๊ตฌ๋ฅผ ๊ฐ๋จํ๊ฒ ๋ง๋ค์์ต๋๋ค.
์ ์ฝ
ํ์ฌ ๊ตญ๋ฏผ์ํ์์๋ ํฌ๋กฌ๋ฑ์ AX๊ฐ ์ง์๋์ง ์๋ ๋ธ๋ผ์ฐ์ ๋ '๊ฐ์ํค๋ณด๋'๋ฅผ ์ฌ์ฉํฉ๋๋ค.
IE์์๋ ๊ฐ์ํค๋ณด๋๋ฅผ ์ฌ์ฉํ์ง ์๊ณ Selenium์ send_keys
๋ฉ์๋๋ฅผ ์ฌ์ฉํด ์
๋ ฅ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด ์ฝ๋ ๊ทธ๋๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
ํ์ง๋ง IE์ ์ ์ฝ์ผ๋ก ์ธํด ํ๋ก๊ทธ๋จ์ด Windows์์์ ๊ตฌ๋๋์ด์ผํ๋ค๋ ๋ฌธ์ ์ ์ด ์์ต๋๋ค.
์ด ํจํค์ง๋ ํ์ด์ฌ 3.5 ์ด์์์ ์ฌ์ฉ๊ฐ๋ฅํฉ๋๋ค.
์ค์น๋ฒ
์ฐ์ pip๋ก ๋ฐ์์ฃผ์ธ์.
pip install kb-transaction
๋ค์์ผ๋ก๋ ์๋์์ ๋์๊ฐ Selenium StandAlone Server๊ฐ ํ์ํฉ๋๋ค.
http://docs.seleniumhq.org/download/์์ ๋ฐ์์ฃผ์ธ์. ๋ฐ๋ก๋ฐ๊ธฐ
Selenium์ ๊ตฌ๋ํ ๋ ์ด ์๋ฒ๋ ํญ์ ์ผ์ ธ์์ด์ผ ํฉ๋๋ค.(IE๋ผ์...)
์ ์ฌ์ดํธ์์ Internet Explorer Driver
๋ ๋ฐ์์ค์ผ ํฉ๋๋ค. 32๋นํธ ๋ฒ์ ์ ๋ฐ์์ฃผ์ธ์. ๋ฐ๋ก๋ฐ๊ธฐ
64๋นํธ ๋ฒ์ ์ ์ฌ์ฉํด๋ ๋์ง๋ง
send_keys()
๊ฐ ๋ฌด์ฒ ๋๋ ค์ง๋ ์ด์๊ฐ ์์ด ์ฌ์ฉ์ ๊ถ์ฅํ์ง ์์ต๋๋ค.
์ฌ์ฉ๋ฒ
from kb_transaction.crawler import get_balance
PATH = 'C:\\Users\\Administrator\\Desktop\\IEDriverServer.exe'
transaction_list = get_balance(PATH, '๊ณ์ข๋ฒํธ', '๊ณ์ข ๋น๋ฐ๋ฒํธ4์๋ฆฌ', '์๋
์์ผ6์๋ฆฌ')
for t in transaction_list:
print(t)
์์์ ๋ฐ์ IEDriverServer.exe
์ ์์น(์ ๋๊ฒฝ๋ก)๋ฅผ ์ฒซ ์ธ์๋ก ํ๊ณ ๊ณ์ข๋ฒํธ์ ๋น๋ฐ๋ฒํธ, ์๋
์์ผ 6์๋ฆฌ๋ฅผ ์
๋ ฅํ๋ฉด ์๋์ ๊ฐ์ dict๋ก ์ด๋ฃจ์ด์ง list๊ฐ ๋์ต๋๋ค.
์ ์: ๊ฒฝ๋ก ์ ๋ ฅ์
\
๋\\
๋ก ์ ๋ ฅํด์ฃผ์ ์ผ ์ ๋๋ก escaping์ด ๋ฉ๋๋ค.
[{'date': datetime.datetime(2017, 9, 5, 18, 3, 52), 'amount': -1250, 'balance': 114645, 'transaction_by': 'KB์นด๋์ถ๊ธ'}, ...]
date๋ datetime ๊ฐ์ฒด, amount๋ ์ ๊ธ์ด๋ฉด +int, ์ถ๊ธ์ด๋ฉด -int, balance๋ ํ์ฌ ๊ณ์ข ์๊ณ int, transaction_by๋ ์ํ์ ์ฐํ๋ ๊ฑฐ๋์(์ ๊ธ์๋ช ๋ฑ)์ ๋๋ค.
๋ฐ์ ๊ณํ
์ด์ ๊ฑฐ๋๋ด์ญ๊ณผ ๋ค๋ฅธ, ์๋ก์ด ๊ฑฐ๋๋ด์ญ์ ๋ฐ๊ฒฌ์ DB๋ฅผ ์ ๋ฐ์ดํธํด์ฃผ๋ Django App์ผ๋ก ๋ฐ์ ํด๋๊ฐ๋ ๊ฒ๋ ๊ณ ๋ ค์ค์ ๋๋ค.