如何在R中的抓取循环内将抓取的数据存储到数据帧中?

时间:2019-04-10 17:14:23

标签: r web-scraping

我是网络爬虫的新手,所以我目前在如何将我爬取的数据存储到数据框中时遇到麻烦。

我想我需要先创建一个空列表,然后将所有列表存储到数据框中,但是我不确定如何在循环中执行该操作,也将没有数据的列表存储为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并将所有数据存储到数据框中。

0 个答案:

没有答案