네이버 영화 평점 가져오기
# 네이버 영화 url
url = "https://movie.naver.com/movie/point/af/list.naver"
html <- read_html(url)
제목 가져오기
제목이 있는 부분을 찾아 가져온다.
# 영화 제목
nodes <- html_nodes(html, " a.movie.color_b")
title <- html_text(nodes)
title
# 별점 가져오기
score <- html_nodes(nodes,"em")
score <- html_text(num)
score
제목과 별점을 잘 가져온 모습 !
but .. 제목이랑 평점은 잘가져와졌는데 리뷰내용이 따로 지정하기가 힘들었다.
그래서 평점 박스를 통으로 가져와서 리뷰내용을 걸러내기로 함
평점박스 통으로 가져오기
nodes <- html_nodes(html, "table.list_netizen > tbody > tr > td.title")
contents <- html_text(node)
contents
필요없는 부분 없애기
contents <- gsub("\t", "", contents)
contents
" /t " 를 없애준다
데이터 쪼개기
contents <- strsplit(contents, "\\n")
contents <- unlist(contents)
contents
strsplit( ) 함수를 이용해서 데이터를 //n 기준으로 쪼개준다.
strsplit( ) 함수 실행 후, list가 된 데이터를 unlist로 풀어준다.
contents<-contents[11]
contents
11번째에 리뷰내용이 있음을 확인하고, contents[11]을 불러오면 리뷰내용만 가져오기 성공 !
영화 제목, 평점, 리뷰 가져오기
nodes <- html_nodes(html, " table > tbody > tr > td.title")
for (node in nodes){
title_node <- html_nodes(node, "a.movie")
title <- html_text(title_node)
score_node <- html_nodes(node, "em")
score <- html_text(score_node)
contents <- html_text(node)
contents <- gsub("\t", "", contents)
#print(contents)
contents <- strsplit(contents, "\\n")
contents <- unlist(contents)
# 여기에 리뷰가 있음
contents<-contents[11]
#print(contents)
cat("제목 : ", title, "\n")
cat("평점 : ", score, "\n")
cat("내용 : ", contents, "\n")
}
for 문으로 제목, 평점, 리뷰를 모두 묶어주고 실행하면 끝이다 !
for 문은 아직 익숙하지 않기 때문에 더 공부해야할 것으로 예상..
'R > 강의복습' 카테고리의 다른 글
[22.08.25] 13일차 API활용하기( 카카오 / 서울 빅데이터 ) (0) | 2022.09.04 |
---|---|
[22.08.24] 12일차 ( 신간 도서 정보 추출하기 / 홈페이지 이미지 가져오기 ) (0) | 2022.09.04 |
[22.08.22] 10일차 (데이터 크롤링 / 뉴스 크롤링 ) (0) | 2022.09.03 |
[22.08.22] 10일차 (인터랙티브 그래프 / 시계열 그래프 / 산포도 / 빈도수그래프) (0) | 2022.09.03 |
[22.08.19] 9일차 지도시각화 (0) | 2022.08.21 |