Naver Movie Ranking
1. 네이버 영화 평점 사이트 분석
- 날짜에 따라 페이지가 변한다
- 페이지 정보를 가져와보자
import pandas as pd
from urllib.request import request
from bs4 import BeautifulSoup
url = ~~
response = request(url)
soup = BeautifulSoup(response,'html.parser')
- 각 정보 위치 파악
soup.find_all('div',class_='tit5').a
soup.find_all('td','point').text
- 제목과 평점의 리스트 길이가 같은지 확인해본다
- 리스트 반복문을 활용하여 데이터 넣기
end = len(soup.select('td.point'))
move_name = [soup.find_all('div',class_='tit5')[n].a.string for n in range(0,end)]
movie_point = [soup.find_all('td','point')[n].text for n in range(0,end)]
2. 자동화를 위한 코드
- 날짜 생성하기
date = pd.date_range('시작날짜',period='원하는기간', freq='주기')
- 원하는 형태로 바꾸기
date.strftime(%Y%m%d)
- 날짜가 달라지기 때문에 문자열 format으로 변하면서 데이터를 가져온다
url = ~~~~~~~{date}
for today in date:
url = ~~~~~~~{date}
response = request(url.format(date = today.strftime(%Y%m%d))
soup = BeautifulSoup(response, 'html.parser')
3. 영화 평점 데이터 정리
- pivot table을 활용해 정리
pd.pivot_table(data = df, index = name, aggfunc =np.sum)
- query
tmp = df.query("column명 == ['가져올 데이터']")
4. 시각화
- 처음 보는 것만 정리
- 세로로 주기
plt.xticks(rotation ='vertical')
- legend 이름주기
plt.legend(labels=['평점추이'])
plt.legend(target_col)
- 아랫부분 구분
plt.tick_params(bottom='off', labelbottom='off')