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

标签 r

在 R 中有没有一种方法可以简单地在 google 上搜索某些东西,然后返回结果的数量?我在 google 的某些服务(RGoogleDocs、RGoogleData、RGoogleMaps、googleVis)周围看到了很多 R 包,但我在任何地方都找不到这个功能。

最佳答案

这是我使用的,但它基于最终将被淘汰的 API 协议(protocol)。它也有速率限制,我相信每天有 100 次搜索。在下面的函数中,服务是“web”;您需要从 http://code.google.com/apis/loader/signup.html 获取 key (任何 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 .

正如我所说,这是基于某天可能会过时的协议(protocol)。根据 Dirk 的回答,您可以使用另一种使用自定义搜索引擎的替代方法,但它也有速率限制(如果您想要此方法的功能,您可以在 noah_at_noahhl.com 上联系我)。

最后一种方法是使用 RCurl 从 google 获取页面,但没有速率限制,但解析起来非常困惑,并且需要欺骗用户代理来绕过 Google 阻止人们这样做的尝试。 (我也可以分享这段代码,但只要谷歌调整他们的任何 HTML,它就会被破坏)。

关于R:在谷歌搜索一个字符串并返回点击数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5187685/

相关文章:

r - 如何在 Rmarkdown 中添加跨 block 的行号?

r - 在 R 中分组和按行自定义排列

r - 如何在 R 中使用 LibSVM 执行 10 折交叉验证?

r - 如何在嵌套函数中将所有可能的内容传递给 i、j 和 by?

r - 如何使用正则表达式按顺序提取字符串中包含的数字

r - Gnuplot 从样本中绘制多个箱线图

regex - 将日期 YYYY-MM-DD 转换为 yyyymmdd

r - 如何使用 R 函数 download.file?

r - 将多个字符串模式转换为二进制列

r - Matlab bsxfun(@times,...,...) 等价于 R