googleapiclient调用Custom Search API无法获取超10条结果的原因
Google Custom Search API 结果数量限制问题
问题说明
使用Google Custom Search API时,当设置请求结果数量大于10会触发400错误,设置为10或以下则能正常返回搜索结果。
相关代码
import json from googleapiclient.discovery import build from pprint import pprint as pp NUM_RESULTS = 11 MY_SEARCH = 'bordben' MY_API_KEY = '...' MY_CSE_ID = '...' def google_search(search_term, api_key, cse_id, **kwargs): service = build("customsearch", "v1", developerKey=api_key) res = service.cse().list(q=search_term, cx=cse_id, **kwargs).execute() return res['items'] results = google_search(MY_SEARCH, MY_API_KEY, MY_CSE_ID, num=NUM_RESULTS) for result in results: pp(result)
触发的错误信息
googleapiclient.errors.HttpError: <HttpError 400 when requesting https://customsearch.googleapis.com/customsearch/v1?q=bordben&cx=...( api key and csi id)&alt=json returned "Request contains an invalid argument.". Details: "[{'message': 'Request contains an invalid argument.', 'domain': 'global', 'reason': 'badRequest'}]"
限制原因
这是Google Custom Search API的原生限制:单次API请求最多只能返回10条搜索结果。这个限制是API设计时就确定的,主要用于控制单请求的资源负载,保证服务的稳定性和响应效率。
如果需要获取超过10条结果,必须通过分页方式多次请求:每次请求设置num=10,然后通过start参数指定下一页的起始位置(比如第一次请求start=1,第二次start=11,第三次start=21,以此类推)。需要注意的是,分页请求会消耗更多的API配额,要在自己的配额范围内操作。
内容的提问来源于stack exchange,提问作者hln
相关产品推荐
相关产品推荐

