kb_transaction

Crawling KB bank transaction with IE Selenium


Keywords
python, selenium
License
MIT
Install
pip install kb_transaction==0.0.3.1

Documentation

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์œผ๋กœ ๋ฐœ์ „ํ•ด๋‚˜๊ฐ€๋Š” ๊ฒƒ๋„ ๊ณ ๋ ค์ค‘์ž…๋‹ˆ๋‹ค.