客户端错误:使用R自动自定义Google搜索

时间:2017-05-16 12:16:00

标签: r google-api automation google-custom-search

我使用googleAuthR软件包通过httr访问Google自定义搜索API,自动在Google上搜索随机创建的字符串,例如数字。我的特遣队每秒搜索100次,每天搜索10,000次。我创建了一个列表并发送了我的请求,例如:

random.search.string<- function(n = 10000)
    {randomNumbers <- c(1:n)
    for (i in 1:n)
    {randomNumbers[i] <- paste(sample(0:9, 9), collapse = "")}
    return(randomNumbers)}

mydata<-cbind.data.frame(as.factor(random.search.string()))
mydata[ , 2]<- c(1:length(random.search.string()))

使用此数据框,我创建了查询:

cs1<-"https://www.googleapis.com/customsearch/v1?key="
API_Key<-"myAPI-Key"
ENGINE_ID<-"mySecret"
cs2<-"&googlehost=.de&num=1"

query <- vector()
for (i in mydata[, 2]) query[i] <- paste(cs1, API_Key, "&cx=", ENGINE_ID, "&q=", mydata[i, 1], cs2, sep = "")

我通过以下方式收到输出:

output<-list()
for (k in query) {output[k] <- content(GET(k))$items[[1]]$link[1]; flush.console(); Sys.sleep(0.5)}

输出包含具有结果的所有搜索链接。但是,有时Google API的信息中心会指示客户端错误(403):dailyLimitExceeded - 尽管API管理器指示我在每日限制下大约有一百个查询。有任何建议如何解决?

非常感谢你。

1 个答案:

答案 0 :(得分:1)

{
  "error": {
    "errors": [
      {
        "domain": "usageLimits",
        "reason": "dailyLimitExceeded",
        "message": "Daily Limit Exceeded"
      }
    ],
    "code": 403,
    "message": "Daily Limit Exceeded"
  }
}

如果您收到每日限额错误,那么这基本上意味着您已完成当天的最大请求数。配额将在美国西部时间中午重置。

如果您转到图书馆下的Google Developer控制台,请找到您启用的API,查找“配额”标签。您可以增加部分Google API的每日配额。单击侧面的小铅笔以增加它

enter image description here

注意:Google在计算配额时并不完美。数百可以加减。