Skip to content

클럽피디아에서 제공되는 클럽 정보를 크롤링하기 위한 서버입니다.

Notifications You must be signed in to change notification settings

team-ascendia/clubpedia-crawling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scrapy MongoDB PostgreSQL ETL 프로젝트

📌 프로젝트 개요

이 프로젝트는 Scrapy를 이용해 클럽 정보를 크롤링하고, MongoDB에 저장한 후, ETL(Extract, Transform, Load) 과정을 통해 데이터를 PostgreSQL로 변환하는 시스템입니다.

🚀 실행 방법

1️⃣ 환경 설정

먼저 필요한 패키지를 설치해야 합니다.

pip install -r requirements.txt

2️⃣ Docker 컨테이너 실행

MongoDB, PostgreSQL, Scrapyd 및 ETL을 포함한 모든 컨테이너를 실행하려면 다음 명령어를 사용합니다.

docker-compose up -d --build

3️⃣ Scrapy 크롤링 실행 (MongoDB 저장)

Scrapyd를 사용하여 Scrapy 크롤러를 실행합니다.

curl http://localhost:6800/schedule.json -d project=club_scraper -d spider=clubs

4️⃣ ETL 실행 (MongoDB → PostgreSQL 변환 저장)

MongoDB에 저장된 크롤링 데이터를 PostgreSQL로 이동하는 ETL 파이프라인을 실행합니다.

docker-compose run etl

또는, 직접 실행할 수도 있습니다.

python etl/etl_pipeline.py

5️⃣ 데이터 확인 (PostgreSQL)

PostgreSQL에 데이터가 적재되었는지 확인합니다.

docker exec -it postgres_db psql -U myuser -d mydatabase

SQL 쿼리를 실행하여 데이터 조회:

SELECT * FROM clubs;

6️⃣ 컨테이너 중지

모든 컨테이너를 종료하려면 아래 명령어를 실행합니다.

docker-compose down

🛠️ 기술 스택

  • Scrapy + Scrapyd: 크롤링 및 관리 자동화
  • MongoDB: 크롤링 데이터 저장 (NoSQL DB)
  • PostgreSQL: 메인 서비스 데이터 저장 (RDBMS)
  • SQLAlchemy: PostgreSQL ORM 처리
  • Docker + Docker Compose: 컨테이너 기반 배포 및 실행
  • Pandas: 데이터 변환 및 정제

📢 추가 개발 계획

  • AWS EC2에서 Scrapyd 배포 및 크롤링 자동화
  • MongoDB를 AWS DocumentDB로 이전 고려
  • PostgreSQL을 AWS RDS로 이전하여 안정성 확보

이 프로젝트에 대한 피드백이나 질문이 있다면 언제든지 환영합니다! 🚀

About

클럽피디아에서 제공되는 클럽 정보를 크롤링하기 위한 서버입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages