如何通过Bing Search API v7获取超过100条搜索结果?
Bing Search V7 API 偏移量超过100后无新结果的原因与解决办法
问题背景
通过遍历offset参数调用Bing Search V7 API(https://api.bing.microsoft.com/v7.0/search)获取指定关键词的全部结果,请求参数如下:
{'q': 'tiramisu', 'offset': 0} {'q': 'tiramisu', 'offset': 50} {'q': 'tiramisu', 'offset': 100}
实际发现获取50-100条结果后,后续请求不再返回新内容,尽管API返回的totalEstimatedMatches数值高达38100000。已知文档明确:
- 即使偏移区间不重叠,也可能出现重复结果(已验证)
- 网页搜索的
count参数最大值为50 - 该问题与8年前Bing V1版本的同类问题相似
原因分析
- 隐性分页上限限制:
totalEstimatedMatches仅为搜索引擎估算的总匹配量,并非实际可通过API获取的结果数。Bing Search API对网页搜索的offset有隐性上限(通常为100-200),超过该范围后,API无法返回新的有效结果——这是因为深层结果相关性极低,且存在大量重复、低质量内容,搜索引擎不会开放深层结果的API访问。 - 内部结果过滤机制:API在返回结果时会自动进行去重、相关性二次筛选,即使设置了不同的
offset,后续请求的结果可能因过滤逻辑与前序结果重叠,导致看起来没有新内容。 - 分页逻辑的设计限制:尽管
count参数支持最大50条的单次返回,但Bing的分页机制并非无限延伸,超过一定偏移量后,无法生成新的结果集。
解决办法
- 优化搜索关键词与筛选条件:使用更精准的关键词,或添加
site:(限定域名)、filetype:(限定文件类型)、freshness(限定时间范围)等筛选参数,缩小搜索范围,获取高相关性结果,避免依赖深层分页。 - 调整搜索参数组合:修改
sort(排序方式)、responseFilter(返回结果类型)等参数,改变结果排序逻辑,可能获取到不同的结果集,绕过原有分页的重复问题。 - 放弃对深层结果的获取:明确
totalEstimatedMatches不代表实际可获取结果数,聚焦于前几页的高相关性结果,这也是搜索引擎API的设计初衷——优先提供最有价值的内容。 - 尝试垂直搜索API:如果需要大量相关结果,可切换到Bing的垂直搜索API(如新闻、图片、视频等),这类接口的分页限制可能更宽松,能获取更多有效内容。
内容的提问来源于stack exchange,提问作者Martin Monperrus
相关产品推荐
相关产品推荐

