T.I.L May 22, 2023 (TMDB API)

2023. 5. 22. 21:37T.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)