무신사 페이지로부터 데이터를 크롤링하여 이미지를 s3에 저장하는 모듈을 개발했습니다.
동작 방식은 다음과 같습니다.
무신사 랭킹 페이지의 "상의" 카테고리로 request 요청
html 을 파싱하여 90위 까지의 상세페이지 url 추출
각 상세페이지 url의 응답을 파싱하여 상품 이름, 상품이미지를 추출
상품 이미지를 "랭킹번호.jpg"로 s3에 저장
처음에는 단순히 전체 랭킹 페이지에서 이미지를 다운받아 s3에 저장하려고 했는데, 화질이 매우 안좋아서 서비스에 제공하기 적절치 않았습니다.
따라서 시간이 오래 걸리지만 상세페이지로 타고 들어가서 고화질의 이미지를 저장하도록 구현했습니다.
90개의 이미지를 s3에 저장하는데까지 걸리는 시간은 약 7분정도 소요됩니다.
분~시간 단위로 동작할 크롤러가 아니기 때문에 이정도의 실행시간은 괜찮아보입니다.
해당 코드는 aws lambda에서 동작 할 예정이며, lambda 상에서 정상동작하는 테스트를 완료한 상태입니다.
lambda 에서 실행 후 s3에 저장된 목록, 저장된 이미지 샘플입니다.
이슈
우선, 기존에 회의에서 말씀드린대로 documentDB를 사용하려고 했는데, 해당 서비스를 사용해본적이 없어서 조사해본결과 ec2처럼 인스턴스를 가동시키는 서비스임을 확인했습니다. 프리티어에서는 750시간만 지원해주기 때문에 프로젝트 완성까지 장기적으로 사용하기에는 적절치 않다고 판단하였습니다.
따라서 아직 DB에 메타데이터를 저장하는 부분은 개발되지 않은 상황이고, dynamoDB를 사용하면 적절할 것 같아 확인중에 있습니다.
DB 개발건은 다른 이슈를 생성하여 진행할 예정입니다.
파이썬 코드기때문에 다같이 리뷰를 해도 좋을 것 같습니다.
코드중 궁금한게 있거나 개선점이 필요해보이면 리뷰 남겨주세요
구현 사항
무신사 페이지로부터 데이터를 크롤링하여 이미지를 s3에 저장하는 모듈을 개발했습니다. 동작 방식은 다음과 같습니다.
처음에는 단순히 전체 랭킹 페이지에서 이미지를 다운받아 s3에 저장하려고 했는데, 화질이 매우 안좋아서 서비스에 제공하기 적절치 않았습니다. 따라서 시간이 오래 걸리지만 상세페이지로 타고 들어가서 고화질의 이미지를 저장하도록 구현했습니다. 90개의 이미지를 s3에 저장하는데까지 걸리는 시간은 약 7분정도 소요됩니다. 분~시간 단위로 동작할 크롤러가 아니기 때문에 이정도의 실행시간은 괜찮아보입니다.
해당 코드는 aws lambda에서 동작 할 예정이며, lambda 상에서 정상동작하는 테스트를 완료한 상태입니다.
lambda 에서 실행 후 s3에 저장된 목록, 저장된 이미지 샘플입니다.
이슈
우선, 기존에 회의에서 말씀드린대로 documentDB를 사용하려고 했는데, 해당 서비스를 사용해본적이 없어서 조사해본결과 ec2처럼 인스턴스를 가동시키는 서비스임을 확인했습니다. 프리티어에서는 750시간만 지원해주기 때문에 프로젝트 완성까지 장기적으로 사용하기에는 적절치 않다고 판단하였습니다. 따라서 아직 DB에 메타데이터를 저장하는 부분은 개발되지 않은 상황이고, dynamoDB를 사용하면 적절할 것 같아 확인중에 있습니다. DB 개발건은 다른 이슈를 생성하여 진행할 예정입니다.
파이썬 코드기때문에 다같이 리뷰를 해도 좋을 것 같습니다. 코드중 궁금한게 있거나 개선점이 필요해보이면 리뷰 남겨주세요