Foro de debate

R: htmlParse

R: htmlParse

de M S -
Número de respuestas: 0

Estimados colegas,

Soy nuevo en uso de R. Requiero por ello amablemente de su ayuda. Estoy realizando una captación de datos de una página web html de comentarios turísticos relativos a 10 hoteles. El código que parcialmente empleo es el siguiente:

(...)

for (i in seq_len(10)){

txt <- getURL(url=baseURL[i], followlocation = TRUE, encoding="UTF-8")
# parse html
text <- htmlParse(txt, asText=TRUE)

t1 <- xpathApply(text, "//span[@class='hotel_name']")
t2 <- xpathApply(text, "//ul[@class='guest_list']")
t3 <- xpathApply(text, "//div[@class='review']")

o1 <- sapply(t1, function(x)unname(xmlSApply(x, xmlValue)))
o2 <- sapply(t2, function(x)unname(xmlSApply(x, xmlValue)))
o3 <- sapply(t3, function(x)unname(xmlSApply(x, xmlValue)))

ot.t <- cbind(o1,o2,o3)

(...)

}

El problema surge porque dentro de la etiqueta //div[@class='review'] existen dos subapartados:

-comentarios positivos (<p class="pos">).

-comentarios negativos (<p class="neg">).

código fuente aclaratorio: 

<div class="review">
<p class="pos">La amabilidad</p><p class="neg">La bañera</p>
</div>

Le señalo además que cuando no hay comentarios positivos o negativos el código fuente html no muestra <p class="pos"> o <p class="neg">. Ahí está la clave del problema. El huésped no siempre deja mensajes positivos o negativos, de tal modo que cuando ejecuto la programación que barre el código html, me desordena los comentarios realizados entre huéspedes. Es decir, si el huésped 2 no realiza comentarios negativos y el huésped 3 sí, los comentarios negativos del huésped 3 los asigna al huésped 2.

En suma, necesitaría que me orientase para que en caso de ausencia de comentarios positivos o negativos asignara un valor (NA) al huésped 2 en cada tipo de comentario (positivo o negativo) ausente. 

Espero su amable respuesta,

Manuel