2009-12-04 13 views

Respuesta

21

No estoy muy seguro de cómo quieres procesar esa página, porque es muy complicada. Como nos re-learned in this famous stackoverflow question, no es una buena idea hacer regex en html, por lo que definitivamente querrá analizar esto con el paquete XML.

He aquí un ejemplo para empezar:

require(RCurl) 
require(XML) 
webpage <- getURL("http://www.haaretz.com/") 
webpage <- readLines(tc <- textConnection(webpage)); close(tc) 
pagetree <- htmlTreeParse(webpage, error=function(...){}, useInternalNodes = TRUE) 
# parse the tree by tables 
x <- xpathSApply(pagetree, "//*/table", xmlValue) 
# do some clean up with regular expressions 
x <- unlist(strsplit(x, "\n")) 
x <- gsub("\t","",x) 
x <- sub("^[[:space:]]*(.*?)[[:space:]]*$", "\\1", x, perl=TRUE) 
x <- x[!(x %in% c("", "|"))] 

Esto se traduce en un vector de caracteres de texto en su mayoría sólo la página (junto con algo de JavaScript):

> head(x) 
[1] "Subscribe to Print Edition"    "Fri., December 04, 2009 Kislev 17, 5770" "Israel Time: 16:48 (EST+7)"   
[4] "  Make Haaretz your homepage"   "/*check the search form*/"    "function chkSearch()" 
3

Su mejor apuesta puede ser el paquete XML; consulte, por ejemplo, este previous question.

+0

Pero, ¿cómo puede deshacerse de las etiquetas html correctamente. Sé que puedo escribir una expresión RegEx, pero ¿hay algún paquete que haga que la codificación sea menos dramática? – Mark

2

sé que solicitó R . Pero tal vez Python + beautifullsoup es el camino a seguir aquí? Entonces haz tu análisis con R has raspado la pantalla con beautifullsoup?

Cuestiones relacionadas