관리 메뉴

RUBY

[WebData][Movie] 1. 네이버 영화 평점 사이트 분석 본문

데이터 분석/EDA_웹크롤링_파이썬프로그래밍

[WebData][Movie] 1. 네이버 영화 평점 사이트 분석

ruby-jieun 2023. 2. 5. 22:12

 

 

 

 

웹 데이터 수집하고 정리하기
네이버 영화 평점 사이트 분석
1. 네이버 영화 평점 사이트 분석

 


 

 

 

1. 

https://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=cur&date=20230205 

 

랭킹 : 네이버 영화

영화, 영화인, 예매, 박스오피스 랭킹 정보 제공

movie.naver.com

- 날짜 정보를 변경해주면 해당 페이지에 접근이 가능합니다.

 

 

 

영화 제목은 <td class="title">안에 <div class="tit5">안에 <a>태그 안에 있다.

 

영화 평점은 <td class="point">

 

 

 

 

2.

 - find_all 명령으로 쉽게 접근한다

 - div 태그의 tit5를 확인해보니 안에 a태그가 보인다.

soup.find_all("div", "tit5")

 

 

 

 

3. 영화 제목 가져오기

soup.find_all("div", "tit5")[0].a.string
soup.select(".tit5")[0].find("a").text
soup.select(".tit5")[0].select_one("a").get_text()

 

 

 

4. 영화 평점 확인하기

soup.find_all("td", "point")

len(soup.find_all("td", "point")), len(soup.find_all("div", "tit5"))
soup.find_all("td", class_="point")[0].text, soup.select("td.point")[0].string

 

 

 

 

5. 자 이제 반복문을 넣어보자

 - 매 페이지마다 가져오는 영화의 갯수가 조금씩 다르다.

 - 그래서 end 변수에 한 페이지의 영화제목 갯수를 넣고

 - 0부터 그 갯수(실제로는 하나 빼고) 만큼 for문을 돌려준다.

end = len(soup.find_all("div", "tit5"))

movie_name = [] 

for n in range(0, end):
    movie_name.append(
        soup.find_all("div", "tit5")[n].a.string
    )
movie_name

movie_name = [soup.select(".tit5")[n].a.text for n in range(0, end)]
movie_name

 

 

 

6. 포인트도 마찬가지로 처리해보자

end = len(soup.find_all("td", "point"))

movie_point = [soup.find_all("td", "point")[n].string for n in range(0, end)]
movie_point

 

 

 

 

7.  전체 데이터수 확인하기

len(movie_name), len(movie_point)
Comments