1

我正在尝试抓取 IMDB 数据,但对于一个变量,我不断收到错误消息。

错误:结果 28 不是长度为 1 的原子向量

library(rvest)
library(purrr)
library(tidyr)

topmovies <- read_html("http://www.imdb.com/chart/top")
links <- topmovies %>%
  html_nodes(".titleColumn") %>%
  html_nodes("a") %>%
  html_attr("href") %>% 
  xml2::url_absolute("http://imdb.com")

pages <- links %>% map(read_html)

budget <- try(pages %>%
  map_chr(. %>%
            html_nodes("#titleDetails .txt-block:nth-child(11)") %>%
            html_text() %>%
            #gsub("\\D", "", .) %>%
            extract_numeric()),silent=TRUE)

当我使用 try (如代码中所示)执行此操作时,我得到

budget

[1] “错误:无法将对象转换为数据框\n” attr(,"class") [1] "try-error" attr(,"condition") <Rcpp::exception: 无法将对象转换为数据框架>

如果有人能告诉我出了什么问题/为什么尝试不只是跳过该结果,那就太好了?

4

1 回答 1

0

当您遇到NULL. 尝试:

map_if(is_empty, ~ NA_character_)

在管道链中,看看它是否有效。

于 2017-03-08T17:16:42.977 回答