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

Sac*_*amp 6 r

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

Noa*_*oah 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)
}
Run Code Online (Sandbox Code Playgroud)

然后,你可以做类似的事情

google <- GetGoogleResults("searchTerm", "web", yourkey)
Run Code Online (Sandbox Code Playgroud)

str(google)会告诉你结果的结构.如果您只想要结果数量,则可以使用google$responseData$cursor$estimatedResultCount.

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

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

  • 我只想补充一下 - 这是一个我遇到过几次的问题.如果有足够的兴趣,我会打包我所有的零碎,并使它成为一个真正的包. (2认同)