Spaces:
Running
Running
metadata
title: JobSonar
emoji: ๐ก
colorFrom: blue
colorTo: indigo
sdk: docker
pinned: false
JobSonar
๋ค์ํ ์ทจ์ ํ๋ซํผ์ ์ฌ๋ผ์ค๋ ๋ฐ์ดํฐ ๊ด๋ จ ์ง๊ตฐ์ ๊ณต๊ณ ๋ค์ ๋ชจ์์ ๋ณด์ฌ์ฃผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
JobSonar
์ฃผ์ ๊ธฐ๋ฅ
| ํญ | ๋ด์ฉ |
|---|---|
| ๊ณต๊ณ ๋ชฉ๋ก | ํค์๋ยท์ง์ญยท๊ฒฝ๋ ฅยท๊ทผ๋ฌดํํ ํํฐ, ์๋ณธ ๋งํฌ |
| ํธ๋ ๋ | ์ฃผ๋ณ ๊ณต๊ณ ์ ์ถ์ด, ์คํฌ ํธ๋ ๋, ๊ฒฝ๋ ฅ ์๊ฑด ๋ถํฌ |
| ๊ธฐ์ ์คํ | ์ง๊ตฐ๋ณ TOP ์คํฌ, ์ต๊ทผ 2์ฃผ ๊ธ์์น ์คํฌ |
| ์คํฌ ๋คํธ์ํฌ | ๊ณต๋ ์ถํ ๊ธฐ๋ฐ ๊ธฐ์ ์ฐ๊ฒฐ ๊ทธ๋ํ |
| ์ฐ๋ด ๋ถ์ | ์ง๊ตฐ๋ณ ๋ฐ์คํ๋กฏยทํต๊ณยทํ์คํ ๊ทธ๋จ |
| ๊ธฐ์ ๋ถ์ | ์ฑ์ฉ TOP ๊ธฐ์ , ์ง์ญ๋ณยท์ง๊ตฐร์ง์ญ ํํธ๋งต |
๊ธฐ์ ์คํ
- ์์ง: Python, requests, BeautifulSoup
- ์ ์ฅ: SQLite
- ๋ถ์: pandas, networkx
- ์๊ฐํ: Plotly, Dash
- ์๋ํ: GitHub Actions (๋งค์ผ ์ค์ 10์ KST)
- ๋ฐฐํฌ: Hugging Face Spaces (Docker)
๊ตฌ์กฐ
GitHub Actions (๋งค์ผ ์ค์ 10์)
โโ ์ํฐ๋ ๊ณต๊ฐ REST API ์์ง
โโ ์ฌ๋์ธ HTML ํ์ฑ (๋ชฉ๋ก ํ์ด์ง๋ง, robots.txt ์ค์)
โโ ์ก์ฝ๋ฆฌ์ HTML ํ์ฑ
โโ SQLite DB ์
๋ฐ์ดํธ (upsert, ์ค๋ณต ๊ณต๊ณ ์ฒ๋ฆฌ)
โโ HF Dataset(mininiming/jobsonar-data)์ DB ์
๋ก๋
HF Space ์ฑ ์์ ์
โโ HF Dataset์์ jobsonar.db ๋ค์ด๋ก๋
โโ Dash ๋์๋ณด๋ ๋ ๋๋ง
๋ก์ปฌ
pip install -r requirements.txt
# ํฌ๋กค๋ง ํ
์คํธ (์ํฐ๋ 3ํ์ด์ง)
python -m crawler.run --source wanted --max-pages 3
# ๋์๋ณด๋ ์คํ
python dashboard/app.py
# โ http://localhost:8050
์์ง ๋์
- ๋ฐ์ดํฐ ์์ง๋์ด
- ๋ฐ์ดํฐ ๋ถ์๊ฐ
- ๋ฐ์ดํฐ ์ฌ์ด์ธํฐ์คํธ
- ML ์์ง๋์ด
ํ๋ ํผ ๋ณ ์ ์ฑ
| ์ฌ์ดํธ | ๋ฐฉ์ | robots.txt |
|---|---|---|
| ์ํฐ๋ | ๊ณต๊ฐ REST API | ๋ฌธ์ ์์ |
| ์ฌ๋์ธ | ๋ชฉ๋ก ํ์ด์ง HTML | ์์ธ ํ์ด์ง Disallow โ relay URL ์ฌ์ฉ |
| ์ก์ฝ๋ฆฌ์ | ๋ชฉ๋ก ํ์ด์ง HTML | ํ์ฉ ํ์ธ |
์์ฒญ ๊ฐ 1.5~4์ด ๋๋ ์ด ์ ์ฉ.