[데이터 엔지니어링 데브코스 2기] TIL-5주차-파트03 [프로젝트]크롤한 웹데이터로 만들어보는 웹사이트(2)

이재호·2023년 11월 7일
0

1. 로직

팀원과 상의한 결과, 크롤링 및 스크래핑 로직을 다음과 같이 구상하였습니다.

  1. 코디숍or코디북에서 정보를 크롤링 및 스크래핑.
  2. 특정 코디 페이지에서 정보를 크롤링 및 스크래핑.
  3. 특정 상품 페이지에서 정보를 크롤링 및 스크래핑.
    (예시)
    1. 코디맵)
    1-1. https://www.musinsa.com/app/codimap/lists
    1-2. https://www.musinsa.com/app/codimap/views/27494?style_type=&tag_no=&brand=&display_cnt=60&list_kind=big&sort=date&page=1
    1-3. https://www.musinsa.com/app/goods/3591215
    2. 코디숍)
    2-1. https://www.musinsa.com/app/styles/lists
    2-2. https://www.musinsa.com/app/styles/views/37149?use_yn_360=&style_type=&brand=&model=&tag_no=&max_rt=&min_rt=&display_cnt=60&list_kind=big&sort=date&page=1
    2-3. https://www.musinsa.com/app/goods/2968766

여기서 1번과 2번 과정은 유사한 방식으로 크롤링이 가능하여, 한 명이 1번과 2번을 맡고 다른 한 명이 3번을 맡는 식으로 파트를 나눴습니다.

제가 맡은 파트는 1번과 2번으로, 다음 페이지들에서 크롤링 및 스크래핑을 진행하는 것입니다.

추출할 정보는 다음과 같이 정리할 수 있을 것 같습니다.

  • 코디이름 (subject)
  • 날짜 (date)
  • 스타일카테고리 (category)
  • 조회수 (views)
  • 사진URL (URL)
  • 태그 (tag)

그리고 아래 정보를 추출할 지는 팀원과 더 상의를 해 봐야할 것 같습니다. (코디 페이지에서 아래 정보들을 효과적으로 추출할 수 있기 때문에 굳이 제품의 상세 페이지에서 스크래핑을 하지 않아도 될 것 같기 때문입니다.)

  • 제품이름 (name)
  • 브랜드 (brand)

2. 환경 세팅

  • 언어 : python 3.11.0 이상
  • DB : PostgreSQL
  • App(솔루션) 형식의 프로젝트 (클라우드 이용 X, 서비스 X)
  • Repo 구조 : 장고 / 크롤링. 크게 두 파트.

3. 회의 내용

  • 클라우드 서비스 이용 여부 => 각자 파트를 구현한 후, 로컬 컴퓨터 한 대를 지정하여 해당 컴퓨터에서 전체 코드를 실행하기로 함.
  • ERD 및 스키마 정의 => 복합키로 정의된 테이블을 정규화 과정을 거쳐 2개의 테이블로 나누고, created_at, delete_at, updated_at 에 대한 필드 추가.
  • 로깅 관련 => 간단한 로깅 폴더 및 파일(커밋X) 저장.
  • 레포 구조 관련 => 크게 장고 / 크롤링 으로 나누고, 크롤링 내에서는 함수 or class or 파일로 기능을 구분할 지 아직 미확정. 다만, 거의 함수로 생각.
  • DB의 데이터 저장 및 갱신 관련 => 중복 레코드에 대해서는 갱신, 첫 레코드에 대해서는 저장.

4. 몰랐던 내용

profile
천천히, 그리고 꾸준히.

0개의 댓글