2012-04-04 8 views
1

Ich möchte Google-Suche kratzen für die Anzahl der Treffer:Web mit XML Schaben, schalten td Knoten in val

require(XML) 

input <- "projektgebiet" 
url <- paste("https://www.google.at/search?q=", 
      input, 
      "&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a", 
      sep = "") 

CAINFO = paste(system.file(package="RCurl"), "/CurlSSL/ca-bundle.crt", sep = "") 
script <- getURL(url, followlocation = TRUE, cainfo = CAINFO) 
doc <- htmlParse(script) 

xmlValue(getNodeSet(doc, "//td")[[6]]) 

Ich bin in der Nähe - das einzige Problem ist, dass ich nicht begreifen, wie die Adresse zwei Werte innerhalb des Knotens separat - ich möchte eigentlich nur die Nummer .. (im obigen Beispiel sind die beiden Werte verkettet)

Ich möchte auch einen Weg wissen, wie man die Indizierung vermeiden kann [[6]] , weiß aber nicht, ob es möglich ist, den Knoten durch ein anderes Merkmal zu adressieren.

Jede Hilfe oder Hinweise würden sehr geschätzt werden!

ps: ich natürlich einen regulären Ausdruck verwenden könnte - aber ich denke, das ist nicht die eleganteste Art und Weise ist ..

Antwort

1

können Sie vermeiden, dass die [[6]] durch zu bemerken, dass einer der div Elemente ein id Attribut hat. Der folgende Code gibt den Inhalt der zwei untergeordneten Knoten separat zurück: ohne Verkettung.

xpathSApply(doc, "//div[@id='subform_ctrl']/*", xmlValue) 
# [1] "Erweiterte Suche"   "Ungefähr 245.000 Ergebnisse"