快速入門:使用 Python 和 Bing 新聞搜尋 REST API 來執行新聞搜尋

警告

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

使用本快速入門,第一次呼叫 Bing 新聞搜尋 API。 這個簡單的 Python 應用程式會將搜尋查詢傳送給 API,並處理 JSON 結果。

雖然此應用程式是以 Python 撰寫的,但 API 是一種與大多數程式設計語言都相容的 RESTful Web 服務。

若要在 MyBinder 上以 Jupyter Notebook 執行此程式碼範例,請選取 [啟動文件夾] 徽章:

啟動文件夾

您也可以在 GitHub 上找到此範例的原始程式碼。

建立 Azure 資源

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

Bing 搜尋 v7 資源

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

多服務資源

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

建立應用程式並將其初始化

在您慣用的 IDE 或編輯器中建立新的 Python 檔案,以及匯入要求模組。 針對您的訂用帳戶金鑰、端點和搜尋字詞建立變數。 您可以使用下列程式碼中的全域端點,或使用 Azure 入口網站中針對您的資源所顯示的自訂子網域端點。

import requests

subscription_key = "your subscription key"
search_term = "Microsoft"
search_url = "https://api.cognitive.microsoft.com/bing/v7.0/news/search"

建立要求的參數

使用 Ocp-Apim-Subscription-Key 作為訂用帳戶金鑰,並將金鑰新增至新字典中。 對您的搜尋參數執行相同的動作。

headers = {"Ocp-Apim-Subscription-Key" : subscription_key}
params  = {"q": search_term, "textDecorations": True, "textFormat": "HTML"}

傳送要求並取得回應

  1. 以您的訂用帳戶金鑰和前一個步驟中建立的字典物件,使用要求程式庫來呼叫 Bing 圖像式搜尋 API。

    response = requests.get(search_url, headers=headers, params=params)
    response.raise_for_status()
    search_results = json.dumps(response.json())
    
  2. 從 API (以 JSON 物件的形式儲存在 search_results 中),存取回應中包含的文章描述。

    descriptions = [article["description"] for article in search_results["value"]]
    

顯示結果

這些說明可以再轉譯為以粗體醒目提示搜尋關鍵字的資料表。

from IPython.display import HTML
rows = "\n".join(["<tr><td>{0}</td></tr>".format(desc)
                  for desc in descriptions])
HTML("<table>"+rows+"</table>")

後續步驟