我需要使用Google Custom Search API https://developers.google.com/custom-search/v1/overview。从那一页,它说:
对于 CSE 用户,API 每天免费提供 100 次搜索查询。 如果您需要更多,您可以在开发者中注册计费 安慰。额外的请求费用为每 5 次查询 1000 美元,最多 10k 每天查询。
我已经在开发者控制台中注册了结算。但是,我仍然无法检索超过 100 个的结果。我应该做更多的事情吗?https://www.googleapis.com/customsearch/v1?cx=CSE_INSTANCE&key=API_KEY&q=QUERY&start=100
{ 错误: { 错误: [ { 域:"全局",原因:"无效",消息: "无效值" } ],代码:400,消息:"无效值" } }
查询:定义
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
检查每个响应,如果error
code
400
,您可以停止 - 可能不需要发送下一个(&start=
上一个+10)请求。
现在,您可以合并响应并开始构建结果页面。
谷歌自定义搜索和谷歌网站搜索最多返回 10 个结果 每个查询。如果要向用户显示 10 个以上的结果, 您可以发出多个请求(使用 start=0, start=11 ... 参数),并在单个页面上显示结果。在这种情况下, Google 会将每个请求视为单独的查询,如果您 使用 Google 网站搜索,每次查询都会计入您的上限。
可能有一个更好的方法来做到这一点,然后我上面描述。(但是,我不确定批处理 API 调用。
(最后)可能回答你的问题:我做了不止几次测试,但我没有任何运气start
大于 100(我和你一样 - <Response [400]>
)。我正在使用启用计费的项目中的"浏览器密钥"。这可能意味着我们无法使用 CSE API 获得第 101、102、103 等结果。
API 文档说它永远不会返回超过 100 个项目。
https://developers.google.com/custom-search/v1/reference/rest/v1/cse/list
开始 整数(uint32 格式)
要返回的第一个结果的索引。默认结果数每页为 10,因此 &start=11 将从第二页的顶部开始的结果。注意:JSON API 返回的永远不会超过 100 个结果,即使超过 100 个文档与查询匹配,因此设置开始 + num 与大于 100 的数字的总和将产生一个错误。另请注意,num 的最大值为 10。