R:搜索谷歌搜索字符串并返回点击数

时间:2011-03-03 22:58:39

标签: r

在R中有没有办法简单地搜索谷歌的东西,然后返回结果的数量?我在谷歌的一些服务(RGoogleDocs,RGoogleData,RGoogleMaps,googleVis)周围看过很多R套餐,但我无法在任何地方找到这个功能。

2 个答案:

答案 0 :(得分:9)

这是我使用的,但它基于最终逐步淘汰的API协议。它也是速率有限的,我相信每天100次搜索。在下面的功能中,服务是“web”;您需要从http://code.google.com/apis/loader/signup.html获取密钥(任何网址都可以使用)。

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

正如我所说,这是基于一种可能在某一天不合时宜的协议。 Per Dirk的回答是,有一种替代方法可以使用您可以使用的自定义搜索引擎,但它也是速率有限的(如果您想要这种方法的功能,您可以在noah_at_noahhl.com ping我)。

最终的,而不是速率限制的方式只是使用RCurl从谷歌获取一个页面,但解析起来相当混乱,并且需要欺骗用户代理以绕过谷歌试图阻止人们这样做。 (我也可以分享这段代码,但只要谷歌调整任何HTML,它就会被破坏。)

答案 1 :(得分:1)

您可能需要从Google Custom Search API文档开始,然后查看您需要学习多少JSON才能获得它:)

应该有足够的R基础设施来实现目标。