Comment puis-je lire et analyser le contenu d'une page web en R
-
12-09-2019 - |
Question
Je voudrais lire (eq le contenu d'une URL, http://www.haaretz.com/ ) R. Je me demande comment je peux le faire
La solution
Pas vraiment sûr de savoir comment vous voulez traiter cette page, parce qu'il est vraiment en désordre. Comme nous réappris dans cette fameuse question stackoverflow , ce n'est pas une bonne idée de faire regex en html, vous voudrez certainement analyser cela avec le package XML.
Voici un exemple pour vous aider à démarrer:
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("", "|"))]
Il en résulte un vecteur de caractère de texte surtout juste page Web (avec 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()"
Autres conseils
Votre meilleur pari peut être le package XML - voir par exemple cette question précédente .
Je sais que vous avez demandé R. Mais peut-être python + beautifullsoup est la voie à suivre ici? Ensuite, faites votre analyse avec R que vous avez gratté l'écran avec beautifullsoup?