首先,我想为一个新问题道歉,因为我的个人资料还不允许我评论其他人的评论,尤其是我见过的两篇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指出了类似的问题,但无法完全理解如何使用@glossarch在第一篇文章中建议的帖子中的建议使用@ shabbychef的解决方法链接上面。
library(drat)
drat:::add("shabbychef");
install.packages('xml2')
library("xml2")
编辑:我注意到,之前我正在运行另一个脚本使用URL从网页上实时抓取数据我没有遇到这个问题。代码是一样的,我只是在从doc <- read_html(pgSource)
读取后才阅读RSelenium's remoteDriver
。
我想问一下,这个温和的社区是我在添加shabbychef的drat之后是否按照正确的步骤安装和加载xml2
,或者我是否需要按SO17154308中的建议添加其他步骤帖子。非常感谢任何帮助或建议。谢谢。
答案 0 :(得分:6)
我不知道这是否是正确的做法,但@hrbrmstr在他的一条评论中回答了我的问题。我决定发布一个答案,以便人们绊倒这个问题,看到它至少有一个答案。
在阅读html源代码时,使用“HUGE”选项基本解决了这个问题。我的问题只与我加载以前保存的源时有关。在使用应用程序的“实时”版本时,我没有发现同样的问题,即直接从网站上阅读来源。
无论如何,现在2016年8月的优秀xml2
套餐更新允许使用HUGE
选项,如下所示:
doc <- read_html(pageSource, options = "HUGE")
有关详细信息,请阅读此处的xml2
参考手册
CRAN-xml2
我再次感谢@hrbrmstr的宝贵贡献。