Это то, что я использую, но оно основано на протоколе API, который в конечном итоге постепенно сокращается.Кроме того, скорость ограничена, я считаю, 100 поисков в день.В приведенной ниже функции сервис является «веб»;вам нужно получить ключ от http://code.google.com/apis/loader/signup.html (любой URL будет работать).
GetGoogleResults <- function(keyword, service, key) {
library(RCurl)
library(rjson)
base_url <- "http://ajax.googleapis.com/ajax/services/search/"
keyword <- gsub(" ", "+", keyword)
query <- paste(base_url, service, "?v=1.0&q=", keyword, sep="")
if(!is.null(key))
query <- paste(query, "&key=", key, sep="")
query <- paste(query, "&start=", 0, sep="")
results <- fromJSON(getURL(query))
return(results)
}
Затем вы можете сделать что-то вроде
google <- GetGoogleResults("searchTerm", "web", yourkey)
str(google)
расскажет вам структуру результата.Если вам просто нужно количество результатов, вы можете использовать google$responseData$cursor$estimatedResultCount
.
Как я уже сказал, это основано на протоколе, который может выйти из моды когда-нибудь.Согласно ответу Дирка, существует альтернативный подход с использованием пользовательского поискового движка, который вы можете использовать вместо этого, но он также ограничен по скорости (если вы хотите использовать функцию для этого метода, вы можете пропинговать меня по адресу noah_at_noahhl.com).
Последний и не ограниченный по скорости способ состоит в том, чтобы просто использовать RCurl для получения страницы от Google, но это довольно грязно для анализа и требует подмены пользовательского агента, чтобы обойти попытки Google помешать людям делать это.этот.(Я также могу поделиться этим кодом, но он ломается всякий раз, когда Google настраивает любой их HTML).