bing 搜索 api v5 "__next" 替换?

bing search api v5 "__next" replacement?

我正在将我的网站从 Bing Azure API (v2) 迁移到新的 Bing V5 搜索 API.
在旧的 API 上,一个对象使用这个“__next”来判断他后面是否有其他东西。
但是在新的 API json 上不再 return 这个了。
我正在努力升级我的分页,但我不知道没有这个元素该怎么做。
任何人都知道在新 API 中替换它的是什么?
我在他们的迁移指南或新的 V5 API 指南中找不到任何信息。
谢谢

您应该在第一次调用 API 时读取 totalEstimatedMatches 值,然后使用 &count 和 &offset 参数对结果进行分页,如下所述:https://msdn.microsoft.com/en-us/library/dn760787.aspx.

约翰是对的。您将 countoffset 参数与返回的第一个对象的 json 中的值的 totalEstimatedMatches 结合使用。

示例: 想象一下,您非常喜欢橡皮鸭,以至于您希望存在的每个网页都包含术语 'rubber-ducky.' 好吧,不幸的是 BC 那不是互联网的工作方式。不过,先不要自杀,Bing 对包含 'rubber-ducky,' 的网页了解很多,您需要做的就是分页浏览 Bing 的 'rubber-ducky' 相关网站知晓而欢喜。

  • 首先,我们需要通过将'rubber-ducky'传递给它来告诉API我们想要"some"结果("some"的值是由 count 参数定义,50 是最大值)。

  • 接下来,我们需要查看返回的第一个 JSON 对象;这将告诉我们 Bing 在名为 totalEstimatedMatches.

  • 的字段中知道多少 'rubber-ducky' 个站点
  • 由于我们对橡皮鸭相关的网站有着永不满足的渴望,我们将设置一个 while 循环来交替 b/w 查询和递增 offset直到 totalEstimatedMatches 和偏移量相隔 count 距离才会停止。

这里有一些 python 代码用于说明:

>>> import SomeMagicalSearcheInterfaceThatOnlyNeeds3Params as Searcher
>>> 
>>> SearcherInstance = Searcher()
>>> SearcherInstance.q = 'rubber-ducky'
>>> SearcherInstance.count = 50
>>> SearcherInstance.offset = 0
>>> SearcherInstance.totalEstimatedMatches = 0
>>> 
>>> print SearcherInstance.preview_URL
'https://api.cognitive.microsoft.com/bing/v5.0/images/search?q=rubber%2Dducky&count=50&offset=0'
>>> 
>>> json_return_object = SearcherInstance.search_2_json()
>>> 
>>> ## Python just treats JSON as nested dictionaries.
>>> tem = json_return_object['webPages']['totalEstimatedMatches']
>>> print tem
9500000
>>> num_links_returned = len(json_return_object['webPages']['value'])
>>> print num_links_returned
50
>>> 
>>> ## We'll set some vals manually then make our while loop.
>>> SearcherInstance.offset += num_links_returned
>>> SearcherInstance.totalEstimatedMatches = tem
>>>
>>> a_dumb_way_to_store_this_much_data = []
>>>     
>>> while SearcherInstance.offset < SearcherInstance.totalEstimatedMatches:
>>>     json_response = SearcherInstance.search_2_json()
>>>     a_dumb_way_to_store_this_much_data.append(json_response)
>>>     
>>>     actual_count = len(json_return_object['webPages']['value'])
>>>     SearcherInstance.offset += min(SearcherInstance.count, actual_count)

希望对您有所帮助。