-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/movie #4
Conversation
…ble에 relationship(reviews) 추가
크롤링은 실행 시 메모리를 많이 잡아먹는지 ec2가 터져버리는 바람에 제대로 테스트는 못 해봤지만, 나머지는 제대로 작동하는 것 같습니다! 많은 양 맡으시느라 수고하셨습니다! |
크롤링을 로컬에서 테스트 했을 땐 문제 없었는데 ec2에선 에러가 나는군요.. |
제대로 크롤링이 되지 않는 것인지, 아니면 ec2의 과부화 때문인지는 정확히 모르겠네요 |
. |
버튼을 잘못 눌러서 pr을 닫았었네요.. 다시 열었습니다 |
수고하셨습니다! 바로 코멘트 & 리뷰 올려 보겠습니다. |
저도 다른 기능들 테스트를 해 보고 크롤링을 한 번 시도해봤는데 EC2가 터져 버렸네요. |
일단 크롤링이 ec2에서 잘 돌아가지 않으니 다시 고민해봐야겠습니다.. |
일단 크롤링 api는 막아두었습니다. 궁여지책으로 영화 리스트 추가 api를 만들었는데, 로컬에서 크롤링한 영화 데이터를 JSON 형식으로 영화 리스트 추가 api에 전달하면 db에 추가하는 기능입니다. |
잘 작동하는 것 같습니다! |
앗 잘못 눌렀네요 |
개요
영화 관련 기능들을 구현했습니다. 자세한 사항은 API 명세서에 적어두었습니다.
영화에 연결되어있는 다른 테이블들이 많아 같이 구현하고 각 기능도 필요한 만큼 구현했습니다.
영화 데이터를 어떻게 받아오면 좋을까 고민하다가, 왓챠피디아 영화 페이지에 있는 영화 정보를 크롤링 해오는 게 낫겠다는 생각이 들어 영화 크롤링 기능을 추가했습니다. Selenium으로 왓챠피디아 영화 메인 페이지에서 제공하는 차트 정보 (박스오피스, 왓챠 구매 순위, 왓챠 Top10, 넷플릭스 순위)를 크롤링 할 수 있습니다.
영화 외 모델 생성:
앞서 말했듯 영화 모델에 연결된 다른 모델들까지 생성 및 구현했습니다.
|chart |
| country |
| genre |
| movie |
| movie_country |
| movie_genre |
| movie_participant |
| participant |
| review
Chart table 추가:
크롤링해오는 정보들이 영화 차트여서 차트 테이블을 추가했습니다. 차트 테이블엔 차트 타입. 순위, 등록 시간, 영화 id 열이 있습니다. 동 차트 내에서 순위 변동이 있는 경우 이미 있는 차트 정보의 순위와 등록 시간만 업데이트 했습니다.
감독/배우 (participant) 추가:
동명이인 문제가 발생할 수 있습니다. 만약 이름은 같으나 프로필 이미지 url이 다른 경우 db에 추가하고, 이름도 같고 둘다 프로필 이미지를 제공하지 않는 경우, 중복으로 생각하여 추가하지 않았습니다.
영화 추가:
영화를 직접 추가하는 경우엔 db에서 겹치는 영화를 찾아 에러를 발생시킵니다. 영화 차트를 크롤링 하는 경우, db에서 겹치는 영화를 찾아도 에러를 발생시키지 않고 해당 영화의 차트 내용을 업데이트한 후 리턴했습니다.
크롤링 항목:
가장 필수적인 항목들을 크롤링 해왔습니다. 평균 평점은 실제 왓챠피디아에 달린 평점 데이터를 가지고 낸 것이므로, 우리 프로젝트 내에서 생성하는 리뷰 별점들로 계산하는게 맞다고 생각하여 가져오지 않았습니다.
PR 유형
어떤 변경 사항이 있나요?
PR Checklist
PR이 다음 요구 사항을 충족하는지 확인하세요.
리뷰 요구사항 (선택)
여러 기능들을 구현하다보니 부족한 점이 많을 것 같습니다.