无法在Google自定义搜索API上获得超过100个结果的结果

时间:2016-02-25 16:52:21

标签: google-api search-engine google-custom-search

我需要使用Google自定义搜索API https://developers.google.com/custom-search/v1/overview。从那页开始,它说:

  

对于CSE用户,API每天免费提供100个搜索查询。   如果您需要更多,可以在开发人员中注册结算   安慰。额外请求每1000次查询需要花费5美元,最高可达10k   每天查询。

我已经在开发者控制台中注册了结算信息。但是,我仍然无法检索超过100的结果。我还应该做些什么? https://www.googleapis.com/customsearch/v1?cx=CSE_INSTANCE&key=API_KEY&q=QUERY&start=100

  

{error:{errors:[{domain:“global”,reason:“invalid”,message:   “无效值”}],代码:400,消息:“无效值”}}

1 个答案:

答案 0 :(得分:3)

查询:定义
https://support.google.com/customsearch/answer/1361951

  

来自Google Site Search引擎的任何实际用户查询,包括但是   不限于使用XML安装在您网站上的搜索引擎,   iFrame或自定义搜索元素。

这意味着您可能需要发送11个查询才能获得超过100个结果

GET https://www.googleapis.com/customsearch/v1?&q=QUERY&...&start=1
GET https://www.googleapis.com/customsearch/v1?&q=QUERY&...&start=11
GET https://www.googleapis.com/customsearch/v1?&q=QUERY&...&start=21
GET ...
GET https://www.googleapis.com/customsearch/v1?&q=QUERY&...&start=81
GET https://www.googleapis.com/customsearch/v1?&q=QUERY&...&start=91 
GET https://www.googleapis.com/customsearch/v1?&q=QUERY&...&start=101

检查每个回复,如果error code400,您可以停止 - 可能无需发送下一个(&start=之前的+ 10)请求。< / p>

现在您可以合并回复并开始构建结果页面。

  

Google自定义搜索和Google Site Search最多可返回10个结果   每个查询。如果要向用户显示10个以上的结果,   你可以发出多个请求(使用start = 0,start = 11 ...   参数)并在单个页面上显示结果。在这种情况下,   Google会将每个请求视为单独的查询,如果您是   使用Google Site Search时,每个查询都会计入您的限制。

然后我可能有更好的方法来实现这一点。 (但是,我不确定batching API calls。)

并且(最后)可能回答你的问题:我做了很多测试,但我没有任何运气start大于100(我和你一样 - {{1} })。我在启用结算的项目中使用“浏览器密钥”。使用CSE API获得That could mean we can't get 101st, 102nd, 103rd, etc.个结果。