1. 로직
팀원과 상의한 결과, 크롤링 및 스크래핑 로직을 다음과 같이 구상하였습니다.
- 코디숍or코디북에서 정보를 크롤링 및 스크래핑.
- 특정 코디 페이지에서 정보를 크롤링 및 스크래핑.
- 특정 상품 페이지에서 정보를 크롤링 및 스크래핑.
(예시)
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)
그리고 아래 정보를 추출할 지는 팀원과 더 상의를 해 봐야할 것 같습니다. (코디 페이지에서 아래 정보들을 효과적으로 추출할 수 있기 때문에 굳이 제품의 상세 페이지에서 스크래핑을 하지 않아도 될 것 같기 때문입니다.)
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. 몰랐던 내용