我正试图从RDB中的一个数据框(称为IMDB数据)中的rvest中提取一些电影。我尝试在我的上调试,但它不起作用。如果有人知道更好的方式或其他方式将页面的数量添加到URL,我将感激不尽。
我的问题是,当我尝试运行“%d ”定义的许多页面的代码时,出现错误:
Error in data.frame(title = page %>% html_nodes("h3 a") %>% html_text(), :
arguments imply differing number of rows: 103, 100, 93, 308, 110, 205, 201, 200, 87
我的代码如下:
install.packages("rvest")
install.packages("xml2")
install.packages("purr")
install.packages("dplyr")
library(xml2)
library(rvest)
library(dplyr)
library(purrr)
imdb <- read_html("http://www.imdb.com/search/title?count=100&release_date=2017,2017&title_type=feature&page=%d&sort=moviemeter,asc&ref_=adv_nxt")
map_df(1:100, function(i){
page <- read_html(sprintf(imdb,i))
data.frame(title = page %>% html_nodes("h3 a")%>%html_text(),
genre = page%>%html_nodes(".genre")%>%html_text(),
PG = page%>%html_nodes(".certificate")%>%html_text(),
rating = page%>%html_nodes(".ratings-imdb-rating")%>%html_text(),
director = page%>%html_nodes(".lister-item-content a:nth-child(1)")%>%html_text(),
Year = page%>%html_nodes(".text-muted.unbold")%>%html_text(),
Actor1= page%>%html_nodes(".ghost+ a")%>%html_text(),
Actor2= page%>%html_nodes("a:nth-child(4)")%>%html_text(),
Actor3= page%>%html_nodes("a:nth-child(5)")%>%html_text(),
Actor4= page%>%html_nodes("a:nth-child(6)")%>%html_text(),
Gross = page%>%html_nodes(".sort-num_votes-visible span:nth-child(2)")%>%html_text(),
Votes = page%>%html_nodes(".ghost~ .text-muted+ span")%>%html_text()
)
}) -> imdb_data
提前致谢, 乔治