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

[장고:분노의 추적자] - 파이썬으로 네이버 영화 리뷰 가져오기

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

2020/10/10 - [문송충의 코딩하기/파이썬 데이터 분석] - [장고:분노의 추적자] - 네이버 영화 API 통한 영화 정보 분석 with 파이썬

 

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

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

yobro.tistory.com

 

위 포스팅에 이어서 내가 좋아하는 장고:분노의 추적자 영화에 사람들이 남긴 리뷰를 네이버 영화 페이지 가져오도록 하겠다. 이번 포스팅에서 평점을 가져온 후 다음 포스팅에서는 텍스트 분석을 해보도록 하겠다. 아래 장고 영화 평점 페이지에서 리뷰 내용을 가져오도록 하겠다.

 

movie.naver.com/movie/bi/mi/pointWriteFormList.nhn?code=87311&type=after&page=1

 

네이버 영화

우리 사회의 금기에 도전하는 동시에 그것을 풍자하는 지능적인 감독의 능력. 스파게티 웨스턴의 진가를 보여주다. 165분이란 러닝타임이란 것이 의아할 정도로 무척이나 재미있고 짜릿하다. tan

movie.naver.com

 

 

파이썬 코드

우선 총 리뷰 수를 가져온 다음 리뷰 수에 맞춰 리뷰 페이지 수만큼 반복문을 돌려서 데이터를 다 가져오도록 하겠다.

 

import pandas as pd
import requests
from bs4 import BeautifulSoup as bs
url='https://movie.naver.com/movie/bi/mi/pointWriteFormList.nhn?code=87311&type=after&page=1'
res=requests.get(url)
obj=bs(res.text,'html.parser')

#총 리뷰 수 가져오기
te=obj.find_all('strong',{'class':'total'})[0].text
import re
total_reviews=int("".join(re.findall(r'[0-9]', te)))

reviews=[]
for i in range(1,int(total_reviews/10 +2)):
    url=f'https://movie.naver.com/movie/bi/mi/pointWriteFormList.nhn?code=87311&type=after&page={i}'
    res=requests.get(url)
    obj=bs(res.text,'html.parser')
    
    
    #리뷰 내용
    for i in range(0,len(obj.find_all('div',{'class':'score_reple'}))):
        text=obj.find_all('span',{'id':f'_filtered_ment_{i}'})[0].text
        reviews.append(text.replace('\t','').replace('\n','').replace('\r',''))

 

위 코드를 돌리고 reviews 리스트 변수를 출력하면 총 2865개가 있다는 점을 확인할 수 있을 것이다. 10월 11일 기준으로 네이버 영화 페이지에 들어가도 동일한 숫자의 리뷰가 있다.

 

df=pd.DataFrame(reviews,columns=['리뷰 내용'])
df.to_csv('장고 리뷰.csv',encoding='euc-kr')

 

위 코드를 통해서 추출한 2865개의 리뷰를 엑셀로 출력해서 다음 분석에 활용하도록 하겠다.

 

 

다음 포스팅에서는 2865개 리뷰를 갖고 텍스트 분석을 해보겠다. 텍스트 분석이 내가 잘 모르는 분야라 조금 시간이 걸릴 것 같다.

728x90
반응형

댓글