クイック スタート:Python を使用して Bing Web Search API を呼び出す
警告
2020 年 10 月 30 日に、Bing Search API は Azure AI サービスから Bing Search サービスに移行されました。 このドキュメントは、参考用としてのみ提供されています。 更新されたドキュメントについては、Bing search API のドキュメントを参照してください。 Bing 検索用の新しい Azure リソースを作成する手順については、「Azure Marketplace から Bing Search リソースを作成する」を参照してください。
このクイックスタートを使用して、Bing Web Search API を初めて呼び出してみましょう。 この Python アプリケーションは、API に検索要求を送信して、JSON 応答を表示します。 このアプリケーションは Python で記述されていますが、API はほとんどのプログラミング言語と互換性のある RESTful Web サービスです。
この例は、MyBinder の Jupyter Notebook として実行されます。 実行するには、起動バインダー バッジを選択します。
前提条件
Azure リソースを作成する
次のいずれかの Azure リソースを作成して、Bing Web Search API の使用を開始します。
- ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
- Free 価格レベルを使ってサービスを試用し、後から運用環境用の有料レベルにアップグレードします。
- ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
- 複数の Azure AI サービス全体で同じキーとエンドポイントをアプリケーションに使用します。
変数の定義
subscription_key
の値を Azure アカウントの有効なサブスクリプション キーに置き換えます。subscription_key = "YOUR_ACCESS_KEY" assert subscription_key
Bing Web Search API エンドポイントを宣言します。 次のコードのグローバル エンドポイントを使用するか、Azure portal に表示される、対象のリソースのカスタム サブドメイン エンドポイントを使用することができます。
search_url = "https://api.bing.microsoft.com/v7.0/search"
必要に応じて、
search_term
の値を置き換えて、検索クエリをカスタマイズすることができます。search_term = "Azure Cognitive Services"
要求を行う
このコードは、requests
ライブラリを使用して Bing Web Search API を呼び出し、その結果を JSON オブジェクトとして返します。 API キーは headers
ディクショナリで渡され、検索用語とクエリ パラメーターは params
ディクショナリで渡されます。
オプションとパラメーターの完全なリストについては、Bing Web Search 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 で入手できるサンプルの完成版に関する記事を参照してください。