2016-11-16 12 views
2

私はBing Azure API(v2)を新しいBing V5検索APIに移行するために、私のwebstiteフォームの移行作業を進めています。
古いAPIでは、オブジェクトはこの "__next"を使用して、後に何かがあるかどうかを判断します。
しかし、新しいAPIでは、jsonはもうこれを返さない。
私はページングのアップグレードに取り組んでおり、この要素がないとどうやって作業するのか分かりません。
新しいAPIでこれを置き換えるものは誰でも知っていますか?
移行ガイドまたは新しいV5 APIガイドに関する情報が見つかりません。
ありがとうございます。ここで説明するようにbing search api v5 "__next"の置き換えは?

答えて

0

Johnが正しいです。 countoffsetのパラメータは、返される最初のオブジェクトのjsonの値からtotalEstimatedMatchesと組み合わせて使用​​します。

例:はあなたが用語が含まれexistance内のすべての単一のウェブページたいことをそんなにゴムduckiesを愛する想像「ラバーダッキーを」。インターネットがどのように機能しているのかわかりません。しかし、あなた自身を殺してはいけませんが、ビンは「ラバーダッキー」を含むウェブページについて多くのことを知っています。ビングが知っていると喜んでいる「ラバーダッキー」関連のサイトにページを張るだけです。

  • まず、私たちは、私たちが望むAPIそこに「ラバーダッキー」を渡すことによって、「一部」の結果(「一部」50が最大で、countのparamによって定義された値)を指示する必要があります。

  • 次に、返される最初のJSONオブジェクトを調べる必要があります。これは、BingがtotalEstimatedMatchesというフィールドで知っている「ラバーダッキー」サイトの数を教えてくれるでしょう。

  • 我々はゴムダッキー関連のウェブサイトのための飽くなき飢えを持っているので、私たちは交互にW/B問い合わせるとoffsetをインクリメントすることをwhileループを設定するつもりだとそれが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) 

が、これは少しお役に立てば幸いです。

0

あなたは、あなたがAPIを呼び出して初めて価値totalEstimatedMatchesを読んで、その後&数を使用して&する必要があり、結果によってページにパラメータをオフセット:https://msdn.microsoft.com/en-us/library/dn760787.aspx

関連する問題