Я новичок в очистке веб-страниц, поэтому в настоящее время у меня возникают проблемы с хранением данных, которые я скопировал во фрейм данных.
Я думаю, что мне нужно сначала создать пустой список, а затем сохранить все списки во фрейме данных, но я не уверен, как это сделать в цикле, а также сохранить те, у которых нет данных, как NA
.
Вот мой код для очистки данных и хранения их в разных списках:
library(rvest)
library(dplyr)
title = c()
genre = c()
runtime = c()
imdb_rating = c()
votes_gross = c()
for (i in seq(2015, 2018, 1)) {
link <- paste0("https://www.imdb.com/search/title?year=",i,"&title_type=feature&sort=boxoffice_gross_us,desc")
top_movies <- read_html(link)
title_t <- top_movies %>% html_nodes(".lister-item-header") %>% html_text()
genre_t <- top_movies %>% html_nodes(".genre") %>% html_text()
runtime_t <- top_movies %>% html_nodes(".runtime") %>% html_text()
imdb_rating_t <- top_movies %>% html_nodes(".ratings-imdb-rating") %>% html_text()
votes_gross_t <- top_movies %>% html_nodes(".sort-num_votes-visible") %>% html_text()
title <- c(title, title_t)
genre <- c(genre, genre_t)
runtime <- c(runtime, runtime_t)
imdb_rating <- c(imdb_rating, imdb_rating_t)
votes_gross <- c(votes_gross, votes_gross_t)
}
Этот метод генерирует противоречивый результат, так как некоторые фильмы не имеют данных рейтинга или голосов. Поэтому я не уверен, как сделать их как NA
и сохранить все данные во фрейме данных.