在 R 中使用外部指针解析 html 文件

Parsing html files with external pointers in R

提问人:user8229029 提问时间:10/10/2023 更新时间:10/10/2023 访问量:33

问:

我有一个本地下载的 HTM 文件,我无法在 R 中解析多个级别。我认为这是因为超过第一级的所有内容都在外部指针后面。我不能在这里共享文件,因为它是敏感信息。但是,我的代码基本上如下所示。

data_file <- "myfile.htm"
data_html <- read_html("myfile.htm")

data_html由一个列表组成,该列表包含两部分,即$node和$doc。这两个都是对象或类。

以下是我尝试过的一些事情:

getNodeSet(data_html)

getNodeSet(data_html) UseMethod(“xpathApply”) 中的错误: 没有适用于应用于类“c('xml_document', 'xml_node')”对象的“xpathApply”的方法

我尝试使用 readLines 读取文件并细分为哪些行中包含“table”一词,但随后出现了与上述相同的问题,我应用的方法不喜欢它是 xml 文档、xml 节点、内部 xml 文档、内部 xml 内容等。我想从这个保存的本地文档(实际上是一个网站)中提取数据表。

data_readLines <- readLines("myfile.htm")
data_readLines <- data_readLines[which(str_count(data_readLines,'table') >= 2)]
toHTML(data_readLines[1]) %>% html_table()

toHTML(data_readLines[1]) %>% html_table() UseMethod(“html_table”) 中的错误: 没有适用于类“c('XMLInternalElementNode', 'XMLInternalNode', 'XMLAbstractNode')”的对象的“html_table”方法

我尝试过一些相当疯狂的事情,例如:

xml_children(xml_children(xml_children(data_html)))

返回:

xml_children(xml_children(xml_children(data_html))) {xml_nodeset (4)} [1] 报告帮助 [2] 最后修正 10-02-2023 13:31:29 [3] 摘要卡 [4] \n\n说明 ...

但是,一定有一些东西可以做到这一点。关于如何让“桌子”摆脱这种混乱的任何想法都会很棒。很抱歉这里没有可重现的例子。我只是无法分享数据,也不知道如何制作一个假例子。

r xml rvest rcurl xml2

评论

0赞 margusl 10/10/2023
如果您决定在 RStudio 中检查或“环境”选项卡,则看到并且完全正常且预期,尽管仅打印它会提供更多信息。您对 rvest、HTML、CSS 和/或 XPath 选择器的一般熟悉程度如何,即您是否通过 rvest.tidyverse.org/articles/rvest.htmlr4ds.hadley.nz/webscraping#html-basics 或类似工具了解一般工作流程,并且您是否有幸从任何其他站点提取表格或任何其他内容?你得到什么?data_htmlstr()$node$docread_html("myfile.htm") %>% html_table()

答: 暂无答案