본문 바로가기
문송충의 코딩하기/파이썬 데이터 분석

[장고:분노의 추적자] - 네이버 영화 API 통한 영화 정보 분석 with 파이썬

by 동장군님 2020. 10. 10.
728x90
반응형

이번 포스팅을 시작으로 네이버에서 제공하고 있는 영화 정보에 대해 파이썬으로 분석해보고자 한다. 우선 네이버 API를 통해 분석하고자 하는 영화 기본 정보를 가져올 수 있는지 알아보고 다음 포스팅에서는 영화 리뷰를 가져와 텍스트 분석하도록 하겠다. 

 

 

 

 

간단하게 내가 가장 좋아하는 영화 쿠엔틴 타란티노 감독이 만든 장고: 분노의 추적자 정보를 우선 API롤 뽑아보도록 하겠다. 네이버 영화 API 관련 내용은 아래 링크에서 확인하기 바란다. 네이버에 로그인해서 API 활용 신청하면 분석을 위한 준비는 끝난 것이다.

 

developers.naver.com/docs/search/movie/

 

검색 API 영화 검색 개발가이드

NAVER Developers - 검색 API 영화 검색 개발가이드

developers.naver.com

 

장고: 분노의 추적자 영화 기본 정보 가져오기

기본 정보를 가져오기 위한 파이썬 코드는 굉장히 쉽다. API id와 Secret 값만 있으면 쉽게 데이터를 가져올 수 있을 것이다. 

import os
import sys
import requests

#네이버 영화 API 키 값
client_id = "~"
client_secret = "~"

movie='장고:분노의 추적자'
header_parms ={"X-Naver-Client-Id":client_id,"X-Naver-Client-Secret":client_secret}
url = f"https://openapi.naver.com/v1/search/movie.json?query={movie}"
res=requests.get(url,headers=header_parms)
data =res.json()

#데이터 전처리
title=data['items'][0]['title'].strip('</b>')
link=data['items'][0]['link']
date=data['items'][0]['pubDate']
director=data['items'][0]['director'].split('|')[0]
actors=data['items'][0]['actor'].split('|')[:-1]
rating=float(data['items'][0]['userRating'])

import pandas as pd
df=pd.DataFrame([title,link,date,director,actors,rating]).T
df.columns=['영화 제목','네이버 링크','개봉 년도','감독','출연진','평점']

 

위 코드 돌리고 마지막 df 변수를 출력하면 결과는 다음과 같을 것이다.

 

 

*영화 장르로 검색하기

포스팅 글이 너무 짧아서 추가적으로 영화 장르로 영화 리스트를 뽑는 코드를 작성해보았다. 가장 무난하게 로맨스 장르에서 "연애"가 포함된 영화 리스트를 출력하도록 하겠다. 코드는 위와 크게 다를 게 없다.

 

movie='연애'
header_parms ={"X-Naver-Client-Id":client_id,"X-Naver-Client-Secret":client_secret}
url = f"https://openapi.naver.com/v1/search/movie.json?query={movie}&genre=5&display=100"
res=requests.get(url,headers=header_parms)
data =res.json()

titles=[]
links=[]
dates=[]
directors=[]
actors=[]
ratings=[]

for i in data['items']:
    titles.append(i['title'].strip('</b>').replace('<b>','').replace('</b>',''))
    links.append(i['link'])
    dates.append(i['pubDate'])
    directors.append(i['director'].split('|')[0])
    actors.append(i['actor'].split('|')[:-1])
    ratings.append(float(i['userRating']))
    
df2=pd.DataFrame([titles,links,dates,directors,actors,ratings]).T
df2.columns=['영화 제목','네이버 링크','개봉 년도','감독','출연진','평점']

 

df2를 출력하면 아래와 같은 총 36개 영화로 구성된 테이블을 볼 수 있을 것이다.

 

 

이번 포스팅에서는 간단하게 네이버 API를 통해 영화 정보를 가져오는 코드를 알아보았다. 다음 포스팅에서는 이어서 장고: 분노의 추적자 리뷰를 가져와 텍스트 분석을 해보도록 하겠다. 그럼 피스

728x90
반응형

댓글