T.I.L May 22, 2023 (TMDB API)
2023. 5. 22. 21:37ㆍT.I.L (Today_I_Learned)
이번 팀 프로젝트를 위해서 TMDB API를 이용하여 영화 정보를 크롤링 하는 것을 공부해 봤습니다.
아래는 크롤링을 위한 코드 이며, 팀 프로젝트 기간이라서 일정이 바빠 자세한 코드 소개는 조만간 작성하겠습니다.
# urls.py
urlpatterns = [
# 영화 목록 조회
path('movies/', views.MovieListView.as_view(), name='movie_list_view'),
]
# views.py
class MovieCrawler(APIView):
def get_genre_mapping(self):
url = f'https://api.themoviedb.org/3/genre/movie/list?api_key={TMDB_API_KEY}'
response = requests.get(url)
if response.status_code == 200:
data = response.json()
genres = {genre['id']: genre['name'] for genre in data['genres']}
return genres
else:
return {}
def get(self, request):
url = f'https://api.themoviedb.org/3/movie/popular?api_key={TMDB_API_KEY}'
response = requests.get(url)
if response.status_code == 200:
data = response.json()
genre_mapping = self.get_genre_mapping()
for movie in data['results']:
genre_ids = movie.get('genre_ids', [])
genres = [genre_mapping.get(genre_id, '') for genre_id in genre_ids]
movie['genres'] = genres
return Response(data)
else:
return Response({'message': 'Failed to fetch data from TMDB API'}, status=response.status_code)
'T.I.L (Today_I_Learned)' 카테고리의 다른 글
T.I.L May 25, 2023 (DRF 프로젝트 DB sqlite3에서 MySQL로 바꾸기) (0) | 2023.05.25 |
---|---|
T.I.L May 23, 2023 (프로그래머스 Lv.1 시저 암호 - 파이썬) (0) | 2023.05.24 |
T.I.L May 19, 2023 (Django CORS policy 문제) (0) | 2023.05.19 |
T.I.L May 18, 2023 (Django 역참조) (0) | 2023.05.18 |
T.I.L May 17, 2023 (DRF 모델간 관계(참조)에 관해 겪던 문제 해결) (0) | 2023.05.17 |