Data Analysis/R
[R] DAUM 영화 평점을 가져와서 분석하기 - 2
불탄오징어
2016. 2. 23. 11:15
2016/02/23 - [Data Analysis/R] - [R] Daum 영화 평점을 가져와서 분석하기 - 1
구조가 파악이 됐으면 구조에 따라 필요한 정보를 가져와 추출한다.
그림에서와같이 Comment의 경우 <span class="comment article"> 밑에 있는데 이 경우 rvest의 html_node()를 활용하여 해당 부분을 추출할 수 있다.
html_node('span.comment')
이를 이용하여 다음과 같이 스크립트를 구성할 수 있다.
library(rvest) reviews <- c() score <- c() for (i in 1:10) { url <- paste0('http://movie.daum.net/moviedetail/moviedetailNetizenPoint.do?movieId=92107&searchType=all&type=after&page=', i) htxt <- read_html(url) # comments <- html_nodes(htxt, 'span.comment') %>% html_nodes('a') %>% html_text() reviews <- c(reviews, comments) starwraps <- html_nodes(htxt, 'span.starWrap') %>% html_nodes('em') %>% html_text() score <- c(score, starwraps) } Encoding(reviews) <- 'UTF-8' df <- data.frame(reviews = reviews, score = score, stringsAsFactors=F)
가져온 df 를 활용하여 간단하게 wordcloud를 그린다.
library(KoNLP) library(wordcloud) library(RColorBrewer) words <- unlist(lapply(df$reviews, extractNoun)) wordcount <- data.frame(table(words), stringsAsFactors=F) mypalette <- brewer.pal(12, "Paired") # 폰트 세팅 windowsFonts(malgun=windowsFont("맑은 고딕")) wordcloud(wordcount$words, wordcount$Freq, min.freq=2, color=mypalette)
결과는 다음과 같다.