在R中有没有办法简单地搜索谷歌的东西,然后返回结果的数量?我在谷歌的一些服务(RGoogleDocs,RGoogleData,RGoogleMaps,googleVis)周围看过很多R套餐,但我无法在任何地方找到这个功能.
这就是我使用的,但它基于最终逐步淘汰的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,它就会被破坏).
| 归档时间: |
|
| 查看次数: |
2999 次 |
| 最近记录: |