如何从Bing API获取搜索结果数量

7
我希望使用Bing搜索API来获取给定查询的搜索结果计数,但是,Bing API似乎没有返回任何包含搜索结果计数的字段。
我应该指定一些选项来请求URL吗?还是Bing API不返回结果计数?
3个回答

6
你可以获取结果计数,但并不像我想象中那样明显。 使用此URL:
https://api.datamarket.azure.com/Data.ashx/Bing/Search/v1/Composite?Sources=%27web%27&Query=%27YOUR_QUERY_HERE%27&$top=1&$format=JSON

您可以获得一个JSON字符串,其中包括结果计数。
d->results[0]->WebTotal

您需要使用组合搜索(在此示例中我仅指定了web,但您可以使用web+news或任何其他必应来源),并且您必须检索至少一个结果($top=1)。
您也可以使用Atom而不是JSON来获取XML响应。

4
如果您订阅的是SearchWeb流而不是通用搜索,URL为:

此URL:

https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Composite?Query=%27YOUR_QUERY_HERE%27&$top=1&$format=JSON

与王堂的回答一样,结果应包括
d->results[0]->WebTotal

有任何想法如何知道页面数量吗?因为搜索结果的数量不可靠。通常这是一个估计值,而真实的结果要少得多。我需要知道有多少页,这样我才能遍历它们,但我无法找到任何方法。如果你有什么想法,请告诉我。 - user2192774
@user2192774,任何页面数量的计数都将基于总估计结果进行估算。但是,每当您请求每个页面时,结果的数量应更新,因此假设您按顺序请求页面,则应该能够确定何时到达最后一个页面。 - Nathan Stretch
网页搜索页面底部出现的页面链接是真实的。如果有10页,您可以浏览它们,并在每个页面中找到结果。但是根据我的经验,总结果数总是夸大其词。 - user2192774

0
您可以从结果对象中获取结果计数:
results_object['searchResults']['webPages']['totalEstimatedMatches']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接