Profundidad excesiva en el documento: opción XML_PARSE_HUGE para xml2:: read_html() en R
web-scraping rselenium (1)
Primero, me gustaría disculparme por una nueva pregunta, ya que mi perfil aún no me permite comentar los comentarios de otras personas, especialmente en dos publicaciones de SO que he visto. Así que por favor tengan paciencia con este tipo mayor :-)
qdap
leer una lista de 100 archivos de caracteres que varían en tamaño desde alrededor de 90KB a 2MB y luego usar el paquete qdap
hacer algunas estadísticas con el texto que extraigo de los archivos, es decir, contar oraciones, palabras, etc. Los archivos contienen fuente de web previamente raspada utilizando RSelenium::remoteDriver$getPageSource()
y guardado en un archivo usando write(pgSource, fileName.txt)
. Estoy leyendo los archivos en un bucle usando:
pgSource <- readChar(file.path(fPath, fileNames[i]), nchars = 1e6)
doc <- read_html(pgSource)
que para algunos archivos es arrojar
Error in eval(substitute(expr), envir, enclos) :
Excessive depth in document: 256 use XML_PARSE_HUGE option [1]
He visto estas publicaciones, SO33819103 y SO31419409, que apuntan a problemas similares, pero no pueden comprender completamente cómo utilizar la solución de @ shabbychef, como se sugiere en ambas publicaciones, utilizando el fragmento sugerido por @glossarch en el primer enlace de arriba.
library(drat)
drat:::add("shabbychef");
install.packages(''xml2'')
library("xml2")
EDITAR: Me di cuenta de que cuando antes estaba ejecutando otra secuencia de comandos raspando los datos en vivo desde las páginas web con URL no encontré este problema. El código era el mismo, solo estaba leyendo el doc <- read_html(pgSource)
después de leerlo desde el RSelenium''s remoteDriver
.
Lo que me gustaría preguntarle a esta amable comunidad es si estoy siguiendo los pasos correctos para instalar y cargar xml2
después de agregar shabbychef''s drat o si necesito agregar algún otro paso como se sugiere en la publicación SO17154308 . Alguna ayuda o sugerencia será muy apreciada. Gracias.
No sé si esto es lo correcto, pero mi pregunta fue respondida por @hrbrmstr en uno de sus comentarios. Decidí publicar una respuesta para que las personas que encuentran esta pregunta vean que tiene al menos una respuesta.
El problema se resuelve básicamente utilizando la opción "ENORME" al leer la fuente html. Mi problema solo estaba relacionado con cuando cargué el código previamente guardado. No encontré el mismo problema al usar una versión "en vivo" de la aplicación, es decir, leer la fuente del sitio web directamente.
De todos modos, ahora la actualización de agosto de 2016 del excelente paquete xml2
permite el uso de la opción HUGE
siguiente manera:
doc <- read_html(pageSource, options = "HUGE")
Para obtener más información, lea el manual de referencia xml2
aquí CRAN-xml2
Deseo agradecer nuevamente a @hrbrmstr por su valiosa contribución.