快速入門:使用 Python 來呼叫 Bing Web 搜尋 API

警告

從 2020 年 10 月 30 日開始,Bing 搜尋 API 已從認知服務移至 Bing 搜尋服務。 本文件僅供參考之用。 如需更新的文件,請參閱 Bing 搜尋 API 文件。 如需針對 Bing 搜尋建立新 Azure 資源的指示,請參閱透過 Azure Marketplace 建立 Bing 搜尋資源

使用本快速入門,第一次呼叫 Bing Web 搜尋 API。 這個 Python 應用程式會將搜尋要求傳送給 API,並顯示 JSON 回應。 雖然此應用程式是以 Python 撰寫的,但 API 是一種與大多數程式設計語言都相容的 RESTful Web 服務。

此範例在 MyBinder (英文) 上以 Jupyter Notebook 形式執行。 若要加以執行,請選取啟動文件夾徽章:

Binder

必要條件

建立 Azure 資源

藉由建立下列其中一項 Azure 資源,開始使用 Bing Web 搜尋 API:

Bing 搜尋 v7 資源

  • 您可以透過 Azure 入口網站取得該資源,直到將其刪除為止。
  • 使用免費定價層來試用服務,之後可升級至付費層以用於實際執行環境。

多服務資源

  • 您可以透過 Azure 入口網站取得該資源,直到將其刪除為止。
  • 針對您的應用程式,跨多個認知服務使用相同的金鑰和端點。

定義變數

  1. subscription_key 值換成您的 Azure 帳戶中有效的訂用帳戶金鑰。

    subscription_key = "YOUR_ACCESS_KEY"
    assert subscription_key
    
  2. 宣告 Bing Web 搜尋 API 端點。 您可以使用下列程式碼中的全域端點,或使用 Azure 入口網站中針對您的資源所顯示的自訂子網域端點。

    search_url = "https://api.bing.microsoft.com/v7.0/search"
    
  3. (選擇性) 取代 search_term 的值以自訂搜尋查詢。

    search_term = "Azure Cognitive Services"
    

發出要求

下列程式碼會使用 requests 程式庫呼叫 Bing Web 搜尋 API,並以 JSON 物件的形式傳回結果。 API 金鑰會透過 headers 字典傳入,而搜尋字詞和查詢參數則會透過 params 字典傳入。

如需完整的選項和參數清單,請參閱 Bing Web 搜尋 API v7

import requests

headers = {"Ocp-Apim-Subscription-Key": subscription_key}
params = {"q": search_term, "textDecorations": True, "textFormat": "HTML"}
response = requests.get(search_url, headers=headers, params=params)
response.raise_for_status()
search_results = response.json()

格式化並顯示回應

search_results 物件包含搜尋結果,以及相關查詢和網頁等中繼資料。 此程式碼會使用 IPython.display 程式庫來格式化回應,並顯示在瀏覽器中。

from IPython.display import HTML

rows = "\n".join(["""<tr>
                       <td><a href=\"{0}\">{1}</a></td>
                       <td>{2}</td>
                     </tr>""".format(v["url"], v["name"], v["snippet"])
                  for v in search_results["webPages"]["value"]])
HTML("<table>{0}</table>".format(rows))

GitHub 上的範例程式碼

若在本機執行此程式碼,請參閱 GitHub 上提供的完整範例

後續步驟

另請參閱