2015-05-12 12 views
6

Suche google mit Keywords "Gesundheit Krankenhaus" gibt etwa 1.150.000.000 Ergebnisse zurück. Wie kann diese Zählung programmatisch in R erhalten werden?r Google Suchergebnis Anzahl abrufen

Ich habe diese lin k gesehen, wo sie versuchen, es mit Java zu lösen. Wie kann das in R gemacht werden? Ein Beispielcode-Snippet wäre wünschenswert.

Danke.

+0

Ein Ausgangspunkt würde sei es, Web-Scraping zu versuchen, und dafür ist das 'rvest'-Paket ein Problem, das b est Wette. 'rvest :: html ('https://www.google.com/search?q=QUERY_HERE')' ABER, ich denke, das ist von Google nicht erlaubt, da es Ihnen einen 403 verbotenen Fehler gibt. Zweifellos haben Sie den entsprechenden Kommentar dazu im verlinkten SO-Thread gesehen. Die angenommene Antwort verwendet einen gefälschten Benutzer-Agenten, aber das ist fast sicher nicht offiziell erlaubt – arvi1000

+0

Werfen Sie einen Blick auf den Code in http://www.l_m_g_t_f_y.com/?q=%22health+hospital%22 ... ohne die unterstreicht, weil es SO Nanny-Code gibt, der dieses spezielle Akronym blockiert. –

Antwort

5

nur eine Zeile des auf theBioBucket Blogeintrag gefunden Code ändern: Get No. of Google Search Hits with R and XML:

GoogleHits <- function(input) 
    { 
    require(XML) 
    require(RCurl) 
    url <- paste("https://www.google.com/search?q=", 
       input, sep = "") # modified line  
    CAINFO = paste(system.file(package="RCurl"), "/CurlSSL/ca-bundle.crt", sep = "") 
    script <- getURL(url, followlocation = TRUE, cainfo = CAINFO) 
    doc <- htmlParse(script) 
    res <- xpathSApply(doc, '//*/div[@id="resultStats"]', xmlValue) 
    cat(paste("\nYour Search URL:\n", url, "\n", sep = "")) 
    cat("\nNo. of Hits:\n") # get rid of cat text if not wanted 
    return(as.integer(gsub("[^0-9]", "", res))) 
    } 

# Example: 
no.hits <- GoogleHits("health%20hospital") 
#Your Search URL: 
#https://www.google.com/search?q=health%20hospital 
# 
#No. of Hits: 
no.hits 
#[1] 1170000000 

änderte ich die url Zuordnung von

url <- paste("https://www.google.com/search?q=\"", input, "\"", sep = "") 

zu

url <- paste("https://www.google.com/search?q=", input, sep = "")