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

Cha*_*nap 8 search-engine google-api 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:"Invalid Value"}],代码:400,消息:"Invalid Value"}}

gal*_*sic 4

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

来自 Google 网站搜索引擎的任何实际用户查询,包括但不限于使用 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
Run Code Online (Sandbox Code Playgroud)

检查每个响应,如果error code400,您可以停止 - 可能不需要发送下一个(&start=上一个+10)请求。

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

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

可能有比我上面描述的更好的方法来做到这一点。(但是,我不确定批处理 API 调用。)

(最后)你的问题的可能答案:我做了很多次测试,但我没有获得start超过 100 次的运气(我得到的结果与你相同 - <Response [400]>)。我正在使用启用计费的项目中的“浏览器密钥”。这可能意味着我们无法使用 CSE API获得第 101、102、103 等结果。

  • 这是旧的,但根据文档:“JSON API 永远不会返回超过 100 个结果,即使超过 100 个文档与查询匹配,” https://developers.google.com/custom-search/v1/reference/休息/v1/cse/列表 (2认同)