/JDA

공고 데이터에 대한 분석을 elastic 스택을 통해 시각화로 구현한 프로젝트.

Primary LanguagePython

JDA (Job Description Analysis)

Python 3.8

JDA는 채용 사이트의 공고 데이터들을 Elasticsearch와 Kibana를 이용하여 시각화한 프로젝트입니다.

Tables

Visualization

Visualization

Architecture Diagram

System Architecture

How it works

Data crawling

[원티드]

  1. selenium을 이용한 공고가 모여있는 무한 스크롤 페이지를 끝까지 로딩
  2. 로딩된 페이지의 HTML을 파싱하여 각 공고들의 URL 크롤링
  3. 각 URL에 대하여 MongoDB에 저장되어 있는 공고들과 비교하여 새로운 공고, 사라진 공고 분류
  4. 새로운 공고들에 대하여 공고 내용 크롤링 진행

Data flow

[DAG]

  • task1 : 공고 링크 크롤링
  • task2 : 새로운 공고들에 대하여 크롤링
  • task3 : 크롤링한 결과와 함께 MongoDB에 Insert & Update
  • task4 : MongoDB와 Elasticsearch와 비교하여 Elasticsearch 해당 index reset 후 Insert

Data access

  • 파이썬 웹 프레임워크 Fast API를 통한 웹으로 Kibana dashboard 확인
  • 로컬 배포 시 : http://localhost

Prerequisites

프로젝트를 실행시키기 위해 필요한 소프트웨어.

Install:

Running project

manage.pyelasticsearch의 indices와 kibana의 objects를 설정 하기위한 Python 스크립트입니다.

  • init project
python3 manage.py init
  • docker-compose
docker-compose up --build