Google 自定义搜索 API start=100 导致错误 400
Google Custom Search API start=100 causes error 400
我有一个脚本使用 Google 自定义搜索 API,遍历多个结果页面。
https://www.googleapis.com/customsearch/v1?key=[[KEY]]&num=10&hl=en&start=0&cx=[[CX]]&q=%22bank%22&sort=date&googlehost=www.google.com
https://www.googleapis.com/customsearch/v1?key=[[KEY]]&num=10&hl=en&start=10&cx=[[CX]]&q=%22bank%22&sort=date&googlehost=www.google.com
https://www.googleapis.com/customsearch/v1?key=[[KEY]]&num=10&hl=en&start=20&cx=[[CX]]&q=%22bank%22&sort=date&googlehost=www.google.com
在上述所有示例中,我都得到了正确的响应。查询响应声称有 17,900 个搜索结果。
然而,当脚本到达 start=100 时:
https://www.googleapis.com/customsearch/v1?key=[[KEY]]&num=10&hl=en&start=100&cx=[[CX]]&q=%22bank%22&sort=date&googlehost=www.google.com
我收到以下响应(这是转换为 PHP 对象的 JSON 响应):
stdClass Object (
[error] => stdClass Object
(
[errors] => Array
(
[0] => stdClass Object
(
[domain] => global
[reason] => invalid
[message] => Invalid Value
)
)
[code] => 400
[message] => Invalid Value
) )
尽管我在 start=90 中收到的结果声称存在下一页:
"nextPage": [
{
"title": "Google Custom Search - \"bank\"",
"totalResults": "17900",
"searchTerms": "\"bank\"",
"count": 10,
"startIndex": 100,
"inputEncoding": "utf8",
"outputEncoding": "utf8",
"safe": "off",
"cx": "[[CX VALUE]]",
"sort": "date",
"googleHost": "www.google.com",
"hl": "en"
}
]
玩转 API 表明这个无效值错误恰好在 start=92 时出现。
此外,这是每次关键字搜索时出现此错误的确切页面。
对此问题的任何帮助将不胜感激。这是因为这是 Google 自定义搜索的免费版本吗?
这个信息一点都不容易找到,我发现它在 google.com 上只有一个地方被正式提及。我在 the Custom Search JSON API docs 中找到一行描述 nextPage
响应元素:
Note: This API returns up to the first 100 results only.
没有提到这仅限于免费 API。我还发现用户报告确认该限制适用,即使您注册了账单,例如参见 [=13=].
OTOH the 100 queries/day limit(与您看到的 results 限制相反)有据可查,并且有关于如何在任何地方绕过它的信息(通过注册)当然是为了计费)。
我有一个脚本使用 Google 自定义搜索 API,遍历多个结果页面。
https://www.googleapis.com/customsearch/v1?key=[[KEY]]&num=10&hl=en&start=0&cx=[[CX]]&q=%22bank%22&sort=date&googlehost=www.google.com
https://www.googleapis.com/customsearch/v1?key=[[KEY]]&num=10&hl=en&start=10&cx=[[CX]]&q=%22bank%22&sort=date&googlehost=www.google.com
https://www.googleapis.com/customsearch/v1?key=[[KEY]]&num=10&hl=en&start=20&cx=[[CX]]&q=%22bank%22&sort=date&googlehost=www.google.com
在上述所有示例中,我都得到了正确的响应。查询响应声称有 17,900 个搜索结果。 然而,当脚本到达 start=100 时:
https://www.googleapis.com/customsearch/v1?key=[[KEY]]&num=10&hl=en&start=100&cx=[[CX]]&q=%22bank%22&sort=date&googlehost=www.google.com
我收到以下响应(这是转换为 PHP 对象的 JSON 响应):
stdClass Object (
[error] => stdClass Object
(
[errors] => Array
(
[0] => stdClass Object
(
[domain] => global
[reason] => invalid
[message] => Invalid Value
)
)
[code] => 400
[message] => Invalid Value
) )
尽管我在 start=90 中收到的结果声称存在下一页:
"nextPage": [
{
"title": "Google Custom Search - \"bank\"",
"totalResults": "17900",
"searchTerms": "\"bank\"",
"count": 10,
"startIndex": 100,
"inputEncoding": "utf8",
"outputEncoding": "utf8",
"safe": "off",
"cx": "[[CX VALUE]]",
"sort": "date",
"googleHost": "www.google.com",
"hl": "en"
}
]
玩转 API 表明这个无效值错误恰好在 start=92 时出现。 此外,这是每次关键字搜索时出现此错误的确切页面。 对此问题的任何帮助将不胜感激。这是因为这是 Google 自定义搜索的免费版本吗?
这个信息一点都不容易找到,我发现它在 google.com 上只有一个地方被正式提及。我在 the Custom Search JSON API docs 中找到一行描述 nextPage
响应元素:
Note: This API returns up to the first 100 results only.
没有提到这仅限于免费 API。我还发现用户报告确认该限制适用,即使您注册了账单,例如参见 [=13=].
OTOH the 100 queries/day limit(与您看到的 results 限制相反)有据可查,并且有关于如何在任何地方绕过它的信息(通过注册)当然是为了计费)。