【问题标题】:(...) is not a length 1 atomic vector error(...) 不是长度为 1 的原子向量错误
【发布时间】:2016-05-08 13:41:54
【问题描述】:

我正在尝试抓取 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") <:exception:>

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

【问题讨论】:

  • 已经发布的答案怎么了?
  • 你想从这些页面中提取什么?

标签: r web-scraping purrr rvest


【解决方案1】:

当您遇到NULL 时,可能会发生这种情况。试试:

map_if(is_empty, ~ NA_character_)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    相关资源
    最近更新 更多