kookmin-sw / capstone-2023-08

capstone-2023-08 created by GitHub Classroom
1 stars 4 forks source link

크롤링 모듈 개발 #21

Closed wynter122 closed 1 year ago

wynter122 commented 1 year ago

구현 사항

무신사 페이지로부터 데이터를 크롤링하여 이미지를 s3에 저장하는 모듈을 개발했습니다. 동작 방식은 다음과 같습니다.

  1. 무신사 랭킹 페이지의 "상의" 카테고리로 request 요청
  2. html 을 파싱하여 90위 까지의 상세페이지 url 추출
  3. 각 상세페이지 url의 응답을 파싱하여 상품 이름, 상품이미지를 추출
  4. 상품 이미지를 "랭킹번호.jpg"로 s3에 저장

처음에는 단순히 전체 랭킹 페이지에서 이미지를 다운받아 s3에 저장하려고 했는데, 화질이 매우 안좋아서 서비스에 제공하기 적절치 않았습니다. 따라서 시간이 오래 걸리지만 상세페이지로 타고 들어가서 고화질의 이미지를 저장하도록 구현했습니다. 90개의 이미지를 s3에 저장하는데까지 걸리는 시간은 약 7분정도 소요됩니다. 분~시간 단위로 동작할 크롤러가 아니기 때문에 이정도의 실행시간은 괜찮아보입니다.

해당 코드는 aws lambda에서 동작 할 예정이며, lambda 상에서 정상동작하는 테스트를 완료한 상태입니다.

lambda 에서 실행 후 s3에 저장된 목록, 저장된 이미지 샘플입니다.

image

이슈

우선, 기존에 회의에서 말씀드린대로 documentDB를 사용하려고 했는데, 해당 서비스를 사용해본적이 없어서 조사해본결과 ec2처럼 인스턴스를 가동시키는 서비스임을 확인했습니다. 프리티어에서는 750시간만 지원해주기 때문에 프로젝트 완성까지 장기적으로 사용하기에는 적절치 않다고 판단하였습니다. 따라서 아직 DB에 메타데이터를 저장하는 부분은 개발되지 않은 상황이고, dynamoDB를 사용하면 적절할 것 같아 확인중에 있습니다. DB 개발건은 다른 이슈를 생성하여 진행할 예정입니다.

파이썬 코드기때문에 다같이 리뷰를 해도 좋을 것 같습니다. 코드중 궁금한게 있거나 개선점이 필요해보이면 리뷰 남겨주세요

wynter122 commented 1 year ago

@dh5473 @lucyya99 @grapefruit224 이상 없으면 머지해도 될까요? 지금 제가 작업하는 브랜치가 약간 꼬여서 확인된 PR은 close 해야 할 것 같습니다.

추가적으로 남은 작업은 브랜치 정리 후 새로운 PR로 올리겠습니다. 확인되면 approve 해주시면 감사하겠습니다

dh5473 commented 1 year ago

엇 제가 merge를 눌러버렸는데 괜찮죠..?

lucyya99 commented 1 year ago

넵 문제 없는것같아 승인했어요