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.
约翰是对的。您将 count
和 offset
参数与返回的第一个对象的 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)
希望对您有所帮助。
我正在将我的网站从 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.
约翰是对的。您将 count
和 offset
参数与返回的第一个对象的 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)
希望对您有所帮助。