ํด๋น ํ๋ก์ ํธ๋ Pulse ๊ณ์ ์ธํด ์ค, DB ๊ด์ฐฐ ํด ์ ์ ํ๋ก์ ํธ์ ๋๋ค.
- ์ฐธ์ฌ์ธ์ : 1์ธ ํ๋ก์ ํธ
- ๊ธฐ๊ฐ : 2020๋ 01์ ~ 2020๋ 02์(1๊ฐ์)
- ๋์ ์ญํ
- ๐ ์๊ตฌ์ฌํญ ๋ถ์
- โ๏ธ DB ํฌ๋กค๋ง ์ ์
- Github : ๋น๊ณต๊ฐ
๐ ์๊ตฌ์ฌํญ ๋ถ์
- ์ฌ์ฉ์ ๋ฐ์ดํฐ์ acc_no๋ฅผ ๊ฒ์ํ๋ฉด, ํด๋น acc_id ๊ฐ ์กด์ฌํ๋ row ์ ์ฒด๋ฅผ ์ฌ๋ฌ ํ ์ด๋ธ์ ๊ฑธ์ณ ๊ฐ์ ธ์์ผ ํ๋ค.
- DB ์คํค๋ง๋ ์์ ํด์ ์๋๋ค.
- ์นผ๋ผ ์์น๋ฅผ ๋ฐ๊ฟ ์ ์์ด์ผ ํ๋ค.
- csv ์ ์ฅ ์ ํตํฉ๋ csv ํ์ผ๊ณผ ํ ์ด๋ธ ๋ณ ์ํธ๋ก ๋๋์ด์ง csv ์ ์ฅ ๋๊ฐ์ง ๊ธฐ๋ฅ์ ์ ๊ณตํด์ผํ๋ค.
- ๋ฉํฐ์ค๋ ๋๋ก ๋น ๋ฅด๊ฒ ์งํ๋์ด์ผ ํ๋ค. ๋น์ฐํ ์ค๋ณต์ ์์ด์ผ ํ๋ค.
โ๏ธ DB ํฌ๋กค๋ง ์ ์
ํฌ๋กค๋ฌ ์ ์
1. ํ๊ฒฝ
- ์์ ํ๊ฒฝ : Pycharm(python3.6)
- ์ฌ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ : selenium(3.141.0v), beautifulsoup4(4.8.2), pyqt5(5.13.0v), pandas(1.0.1v), numpy(1.18.1v), xlsxWriter(1.2.8v), pip(20.0.2v), cx_freeze(6.1v)
- ํ์ผ :
- extract.py : Login.class = ๋ก๊ทธ์ธ, Ui_Dialog.class = ๋ฉ์ธํ๋ฉด
- crowling.py : crolw(์ฃผ์,id,pw).class = ํฌ๋กค๋ง
- test.py : exportCsv(๋ฌธ์์ด, ๋ชจ๋ธ).class = DB์ฌ์ ๋ ฌ
- ๋ชจ๋ธ==0: ์ฌ๋ ๊ฒ์ํ์ฌ Ui_Dialog.class์ QTableView์ ์ถ๋ ฅ
- ๋ชจ๋ธ==1: ์ ์ฒด excel export
- ๋ชจ๋ธ==2: ์ฌ๋ excel export
- ๋ชจ๋ธ==3: ์ ์ฒด ๊ฒ์ํ์ฌ Ui_Dialog.class์ QTableView์ ์ถ๋ ฅ
- setup.py : cx_freeze๋ก exeํ์ผ ์ถ์ถ.
2. ์๋ฃ๋ ๋ชฉ๋ก
1) CSV๋ฐ์ดํฐ ๊นจ์งํ์ ์์ .
- txt๋ก ๋ฐ์์ ๋ค์ csv๋ก ์ฌ์ธ์ฝ๋ฉ.
2) CSV๋์ excel์ฌ์ฉ
- ํ ๊ฐ์ CSVํ์ผ์ ์ฌ๋ฌ๊ฐ ์ํธ๊ฐ ์์ ์ ์์์ผ๋ก, ์ฉ๋๊ณผ ์๊ฐ์ด ์ปค์ง์ง๋ง xlsxํ์ฅ์ ์ฌ์ฉ.
- xlsx๋ก ์ ์ฒด ํ ์ด๋ธ ์์ฑ์๊ฐ์ ์ฝ 3๋ถ ์์๋๋ค.
3) pyqt5์ฌ์ฉํ์ฌ Qtableview์ dataframe์ถ๋ ฅ.
4) ๊ฒ์๊ธฐ๋ฅ ๊ตฌํ.
- acc_no์ ์ ๋ ฅ ํ ๊ฒ์ ์, ์ ์ฒด ๋ฒํผ์ด isClicked()์ผ ๋ ๋ชจ๋ ํ์, ์๋ ๋ acc_no๊ฐ ๋ง๋ ์ฌ๋๋ง ํ์.
5) csv์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ.
- ์ ์ฒด ๋ฒํผ์ด isClicked()์ผ ๋, _user_all.xlsxํ์ผ์ ๋ฐ์ดํฐ ์ถ๊ฐ.
- ์ ์ฒด ๋ฒํผ์ด ๊บผ์ ธ์๊ณ acc_no์ ๊ฐ์ด ์ ๋ ฅ๋์ด ์์ ๋, acc_no + โ_โ + ํ ์ด๋ธ์ข ๋ฅ.csv ๋ก ์ด 5๊ฐ์ csvํ์ผ ์์ฑ
- ์คํํ์ผํด๋์ csv์์ฑ.
6) ๋ก๊ทธ์ธ
- ์ฃผ์, ID ,PW๋ฅผ ๋ฐ์์ extract.py์ Ui_Dialogํด๋์ค init๋ถ๋ถ์์ crowling ์คํ.(selenium, bs4 ์ฌ์ฉ)
7) ํฌ๋กค๋ง์ผ๋ก csvํ์ผ์ ๋ฐ์์ฌ ๋, Headless๋ก ๊ตฌํ ๋ฐ ์๋ ํฅ์.
- csv๋ฐ์ดํฐ๋ฅผ ์ฝ๋๋ฐ ๋ณดํธ์ ์ผ๋ก ์ฐ์ด๋ ๊ฒ์ด Pandas.lib์ด์ง๋ง ๋ฐ์ดํฐ ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ก์ฝ๊ฑฐ๋์ธ ๋ ๋๋ ค์ง๋ ๋จ์ ์ด ์๋ค. ๋ฐ๋ผ์ Pyarrow๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ csvํ์ผ์ฒ๋ฆฌ ์๋๋ฅผ ํฅ์์ํจ๋ค. ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ์ ํด๊ฒฐํ ์ ์๋ค. multi thread๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์๋๊ฐ ๋น ๋ฅด๋ค.
3. ๊ฒฐ๊ณผ