首先,我想为一个新问题道歉,因为我的个人资料还不允许我评论其他人的评论,尤其是我看到的两个 SO 帖子。所以请忍受这个老家伙:-)
我正在尝试读取一个包含 100 个字符的文件列表,文件大小从 90KB 到 2MB 不等,然后使用 qdap
包对我从文件中提取的文本进行一些统计,即计数句子、单词等。这些文件包含以前使用 RSelenium::remoteDriver$getPageSource()
抓取的网页源代码并使用 write(pgSource, fileName.txt)
保存到文件中.我正在使用以下循环读取文件:
pgSource <- readChar(file.path(fPath, fileNames[i]), nchars = 1e6)
doc <- read_html(pgSource)
对于某些文件是抛出
Error in eval(substitute(expr), envir, enclos) :
Excessive depth in document: 256 use XML_PARSE_HUGE option [1]
我看过这些帖子,SO33819103和 SO31419409这指向类似的问题,但不能完全理解如何使用@shabbychef 的变通方法,正如在上面第一个链接中使用@glossarch 建议的片段的两个帖子中所建议的那样。
library(drat)
drat:::add("shabbychef");
install.packages('xml2')
library("xml2")
编辑:我注意到,当我之前运行另一个脚本使用 URL 从网页实时抓取数据时,我没有遇到这个问题。代码是一样的,我只是在阅读 doc <- read_html(pgSource)
从 RSelenium's remoteDriver
阅读后.
我想问这个温和的社区是我是否按照正确的步骤安装和加载xml2
添加 shabbychef 的 drat 之后,或者我是否需要按照 SO17154308 中的建议添加一些其他步骤邮政。非常感谢任何帮助或建议。谢谢。
最佳答案
我不知道这样做是否正确,但@hrbrmstr 在他的一条评论中回答了我的问题。我决定发布一个答案,以便遇到这个问题的人看到它至少有一个答案。
阅读html源码时使用“HUGE”选项基本解决了问题。我的问题只与我加载以前保存的源有关。我在使用应用程序的“实时”版本时没有发现同样的问题,即直接从网站读取源代码。
无论如何,现在优秀的 xml2
包的 2016 年 8 月更新允许使用 HUGE
选项,如下所示:
doc <- read_html(pageSource, options = "HUGE")
有关更多信息,请在此处阅读 xml2
引用手册
CRAN-xml2
再次感谢@hrbrmstr 的宝贵贡献。
关于html - 文档深度过大:R 中 xml2::read_html() 的 XML_PARSE_HUGE 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39673775/