- Python 3.6 v
- DB ์๋ฒ ํ๊ฒฝ Ubuntu
- requests
- selenium
- beautifulsoup
- multiprocessing
- itertools
- re
- json
- time, csv
- chromedriver
- konlpy-okt
- nltk
-
MongoDB
-
pymongo ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด์ฉ
-
์๋ฒ์ MongoDB ์ธํ
-
MongoDB ํฌํธ ๋ณ๊ฒฝ
- ๊ฐ๋ฐ ์ง๊ตฐ์ ์ํ ๋ชจ๋ ์นดํ ๊ณ ๋ฆฌ์ 'href' save
https://www.wanted.co.kr/wdlist/518?country=kr&job_sort=job.latest_order&years=-1&locations=all
- ์ฑ์ฉ ์ง๊ตฐ : '๊ฐ๋ฐ', wdlist/518
- ์ฑ์ฉ ๊ตญ๊ฐ : 'ํ๊ตญ', country=kr
- ํํฐ๋ง job_sort
- ์ต์ ์ : job.latest_order
- ๊ฒฝ๋ ฅ๋ฌด๊ด(๋ชจ๋) : years=-1
- ์ ๊ตญ : locations=all
-
์นดํ ๊ณ ๋ฆฌ๋ณ ๋ชจ๋ ์ฑ์ฉ๊ณต๊ณ ์ 'href' save 3๋ฒ์์ ๋ฐ์ํ ์ค๋ฅ๋ฅผ ์ก๊ธฐ ์ํด 1๋ฒ์ผ๋ก ๋ค์ ๋์๊ฐ๋ ๊ฒ์ ๋นํจ์จ์ ์ด๋ผ๊ณ ์๊ฐํ์ฌ ํด๋น ํญ๋ชฉ์ ์ ๋ณด๋ csv ํ์ผ์ ์ ์ฅํด๋์๋ค.
-
์ฑ์ฉ์์ธ์ ๋ณด ํฌ๋กค๋ง ์ฑ์ฉ์์ธ์ ๋ณด๋ MongoDB object insert๋ฅผ ๊ณ ๋ คํ์ฌ json ํํ๋ก RecruitInfo.json์ ์ ์ฅ๋๋ค. ์ถํ ํด๋น์ ๋ณด๋ mongo DB์ RecruitInfo ์ปฌ๋ ์ ์ ์ ์ฅ๋ ์์ ์ด๋ค.
'id', '์ง๊ตฐ', '์ง์ญ', '๊ตญ๊ฐ', 'ํ๊ทธ', 'ํ์ฌ๋ช
', 'ํ์ฌ์๊ฐ', '์ฃผ์์
๋ฌด', '์๊ฒฉ์๊ฑด', '์ฐ๋์ฌํญ', 'ํํ ๋ฐ ๋ณต์ง', '๋ง๊ฐ์ผ', '๊ทผ๋ฌด์ง'
-
์ํฐ๋๋ ๋์ ์น์ผ๋ก, ํ๋ฉด ํฌ๊ธฐ์ ๋ฐ๋ผ ํ๊ทธ ๊ตฌ์กฐ๊ฐ ๋ฐ๋๋ ๋ถ๋ถ์ด ์๋ค. ์ด๋ก ์ธํด ์ฌ์ ์ ๋ถ์ํ ํ๊ทธ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก selenium selector๋ก element๋ฅผ ์ฐพ์์ง๋ง, selector๊ฐ ํด๋น element๋ฅผ ์ฐพ์ง ๋ชปํ๋ค. select๋ฅผ ์๋ชปํ ๊ฒ์ธ์ง, iframe์ด ์์ด์ ์ฐพ์ง๋ฅผ ๋ชปํ๋ ๊ฑด์ง ๋ฑ ์ฌ๋ฌ ๊ฐ์ง๋ฅผ ์๋ํด๋ณด์๋ค. web driver์ ํ๋ฉด ํฌ๊ธฐ๋ฅผ ๊ณ ์ ํ๋ option์ ์ฃผ์ด ํด๊ฒฐํ ์ ์์๋ค.
-
์ฑ์ฉ์์ธ์ ๋ณด์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง๊ตฐ, ํ์ฌ๋ช , ํ์ฌ์๊ฐ, ์ฃผ์์ ๋ฌด, ์๊ฒฉ์๊ฑด, ์ฐ๋์ฌํญ, ํํ ๋ฐ ๋ณต์ง, ๋ชจ์ง์ผ, ๊ทผ๋ฌด์ง๋ฅผ ์ ์ ์๋ค. ํ์ง๋ง ์ด๋ค ์ฑ์ฉ์์ธ์ ๋ณด์์ ๊ธฐ๋ณธ ํญ๋ชฉ์ ๋์๋๋ ๊ฐ์ด ์์๋ค. try/expect๋ก ์๋ฌ๋ฅผ ErrorHistory.json์ ๊ธฐ๋กํ๊ณ ํด๋น ํญ๋ชฉ์๋ None ๊ฐ์ ํ ๋นํ๋ค.
-
mecab๊ณผ okt๋ฅผ ๋น๊ตํ์ฌ konlpy์ open korean text๋ก ๊ฒฐ์ ํ์ฌ ๋ช ์ฌ ์ถ์ถ์ ์งํํ๋ค. okt ์คํ์ ๊ธฐ์กด jdk๊ฐ 32bit๋ผ์ interface mismatch ์ค๋ฅ๊ฐ ๋ฌ๋ค.64bit jdk๋ฅผ ์ฌ์ค์นํด์ ํด๊ฒฐํ๋ค.
-
์ฑ์ฉ๊ณต๊ณ ์ ์ธ๋์ด๊ฐ ๋ง์์ ์ผ์ผ์ด ๋ฐ์ดํฐ๋ฅผ ํ์ธํด์ ํ๋ํ๋ user dictionary, ngram, stopwords์ ์ถ๊ฐํ์ฌ ์ ์ฉํ๋ค.. ์์ด๋ ์ ์ฉํด๋ด์ผ๊ฒ ๋ค..