R: Поиск Google в строке и возвращает количество попаданий - PullRequest
6 голосов
/ 04 марта 2011

Есть ли способ в R просто найти в Google что-то и затем вернуть количество результатов? Я видел множество пакетов R в некоторых сервисах Google (RGoogleDocs, RGoogleData, RGoogleMaps, googleVis), но нигде не могу найти эту функцию.

Ответы [ 2 ]

9 голосов
/ 04 марта 2011

Это то, что я использую, но оно основано на протоколе 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).

1 голос
/ 04 марта 2011

Вы можете начать с документации API пользовательского поиска Google , а затем посмотреть, сколько JSON вам нужно научиться, чтобы поразить его :)

Должно быть достаточно инфраструктуры R на местечтобы что-то пошло

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...