freesia

R언어 예제 ) 영화 사이트 분석하기 본문

Programming/R언어

R언어 예제 ) 영화 사이트 분석하기

freeesia 2021. 4. 23. 09:30
반응형

**2018년에 작성한 글을 옮긴 내용입니다.

 

library(rvest)

library(stringr)

library(KoNLP)

library(wordcloud)

library(rvest)

useSejongDic()

 

url <- "http://movie.daum.net/premovie/released?opt=total&page=1" #현재 상영작

htxt <- read_html(url)

data <- html_nodes(htxt, 'strong.tit_join')

titles <- data %>% html_text() # 제목

ids<-data %>% html_nodes('a.link_g')%>%html_attr("href")

ids2 <- gsub('/moviedb/main\\?movieId=','', ids)

 

 

countries <- c()

directors <- c()

mainactor <- c()

times <- c()

genre<- c()

 

#빈 프레임 만들기

movie <- data.frame(title=character(),genre = character(),country = character(), director=character(),openning=as.Date(character()),mainactor = character(), times = character())

 

 

for(i in 1:length(ids2)) {

url <- paste0("http://movie.daum.net/moviedb/main?movieId=",ids2[i])

htxt <- read_html(url)

 

 

#나라

country <- (htxt %>% html_nodes('dl.list_movie.list_main') %>% html_nodes('dd'))[2]%>%html_text()%>%str_trim()

country <- gsub('\t|\n','',country)

 

#장르

genre <- htxt %>% html_nodes('dd.txt_main') %>% html_text() %>% str_trim()

genre <- gsub('\t|\n|','',genre[1])

 

 

#오픈일

openning <- (htxt %>% html_nodes('dl.list_movie.list_main') %>% html_nodes('dd'))[3]%>%html_text()%>%str_trim()

openning <- gsub('\n|\t|개봉',"",openning)

 

#상영시간

time_grade <- (htxt %>% html_nodes('dl.list_movie.list_main') %>% html_nodes('dd'))[4]%>%html_text()%>%str_trim()

time_grade <- gsub('\n|\t|재개봉|\\(|\\)','',time_grade)

 

 

#감독

director <- htxt %>% html_node('dd.type_ellipsis') %>% html_text() %>% str_trim()

director <- gsub('\n|\t|(감독)|\\(|\\)','',director)

 

#주연

mainactor <- htxt %>% html_nodes('dd.type_ellipsis') %>% html_text() %>% str_trim()

mainactor<- gsub('\n|\t|\\(|\\)|주연','',mainactor)

mainactor<-mainactor[2]

 

#프레임에 값 넣기

movie <- rbind(movie,data.frame(title=titles[i], genre = genre, country = country, director=director, openning=as.Date(openning,'%Y.%m.%d'), mainactor = mainactor, times = time_grade))

}

 

 



반응형

'Programming > R언어' 카테고리의 다른 글

입출력  (0) 2021.04.24
NA / 특정 위치 값 제어 (벡터) / matrix  (0) 2021.04.22
vector/list/dataframe/factor  (0) 2021.04.21
R언어 예제 ) 텍스트 데이터 분석하기  (0) 2021.04.20
R언어란?  (0) 2021.04.19