rRVEST错误:“0”;doc_名称空间(doc)中出错:外部指针无效;

rRVEST错误:“0”;doc_名称空间(doc)中出错:外部指针无效;,r,error-handling,rvest,purrr,xml2,R,Error Handling,Rvest,Purrr,Xml2,我的问题与类似,但后者没有得到我可以接受的答案。我正在用xml2::read\u html删除数千个URL。这个很好用。但是,当我尝试使用purrr::map_df和html_节点解析生成的html文档时,我得到以下错误: Error in doc_namespaces(doc) : external pointer is not valid 由于某些原因,我无法使用示例再现错误。下面的例子并不好,因为它工作得非常好。但如果有人能从概念上向我解释错误的含义以及如何解决它,那就太好了(这里有一个

我的问题与类似,但后者没有得到我可以接受的答案。我正在用
xml2::read\u html
删除数千个URL。这个很好用。但是,当我尝试使用
purrr::map_df
html_节点
解析生成的html文档时,我得到以下错误:

Error in doc_namespaces(doc) : external pointer is not valid
由于某些原因,我无法使用示例再现错误。下面的例子并不好,因为它工作得非常好。但如果有人能从概念上向我解释错误的含义以及如何解决它,那就太好了(这里有一个关于类似问题的例子,但我并不完全理解技术细节)


当read_html()在保存的环境中工作时,似乎会发生这种情况。我通过阅读新的数据来解决这个问题@NBK I面临着同样的问题,并找到了一些(不是完美的,但有效的)解决方案。当read_html()在保存的环境中工作时,似乎会发生这种情况。我通过阅读新的数据来解决这个问题@NBK I面临着同样的问题,并找到了一些(不是完美的,但有效的)解决方案。
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