可以像这样保存和读取对象

# Save as file
saveRDS(iris, "mydata.RDS")

# Read back in
readRDS("mydata.RDS")

但这似乎不适用于使用 xml2::read_html() 制作的对象

例子
library(rvest)
someobject <- read_html("https://stackoverflow.com/")
saveRDS(someobject, "someobject.RDS")

它创建了一个文件,但不像预期的那样
IE。
readRDS("someobject.RDS")
Error in doc_is_html(x$doc) : external pointer is not valid

这是怎么回事,最简单的保存html对象的方法是什么,以便可以用最少的代码/繁琐的操作将其重新加载?

最佳答案

我们可以使用 write_xml 包中的 read_htmlxml2

before <- read_html("https://stackoverflow.com/")
xml2::write_xml(before, "someobject1.xml")
after <- xml2::read_html("someobject1.xml")

但是,identical返回FALSE
identical(before, after)
#[1] FALSE

但对他们两个的查询似乎返回相同的结果
library(rvest)
before %>%  html_nodes("div")
after %>% html_nodes("div")

关于r - 如何将read_html的输出保存和读取为RDS文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57764585/

10-12 18:07