r rvest error: «Ошибка в doc_namespaces (doc): внешний указатель недействителен» - PullRequest
0 голосов
/ 22 мая 2019

Мой вопрос похож на этот , но последний не получил ответа, с которым я могу работать. Я соскребаю тысячи URL с xml2::read_html. Это отлично работает. Но когда я пытаюсь разобрать полученные HTML-документы, используя purrr::map_df и html_nodes, я получаю следующую ошибку:

Error in doc_namespaces(doc) : external pointer is not valid

По какой-то причине я не могу воспроизвести ошибку, используя примеры. Пример ниже не очень хорош, потому что он работает совершенно нормально. Но если бы кто-то мог объяснить мне концептуально, что означает ошибка и как ее решить, это было бы замечательно (вот github thread по аналогичной проблеме, но я не следую всем техническим деталям).

library(rvest)
library(purrr)
urls_test <- list("https://en.wikipedia.org/wiki/FC_Barcelona",
             "https://en.wikipedia.org/wiki/Rome")
h <- urls_test %>% map(~{
  Sys.sleep(sample(seq(1, 3, by=0.001), 1))
  read_html(.x)})
out <- h %>% map_df(~{
  a <- html_nodes(., "#firstHeading") %>% html_text()
  a <- if (length(a) == 0) NA else a
  b <- html_nodes(., ".toctext") %>% html_text()
  b <- if (length(b) == 0) NA else b

  df <- tibble(a, b)
})

Информация о сеансе:

> sessionInfo()
R version 3.6.0 (2019-04-26)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Devuan GNU/Linux ascii
...