快速入门:使用 Python 和必应新闻搜索 REST API 执行新闻搜索

警告

2020 年 10 月 30 日,必应搜索 API 从 Azure AI 服务迁移到必应搜索服务。 本文档仅供参考。 有关更新的文档,请参阅必应搜索 API 文档。 关于为必应搜索创建新的 Azure 资源的说明,请参阅通过 Azure 市场创建必应搜索资源

根据此快速入门中的说明对必应资讯搜索 API 进行第一次调用。 这个简单的 askSpoke 应用程序会向 API 发送一个搜索查询并处理 JSON 结果。

虽然此应用程序是使用 Python 编写的,但 API 是一种 RESTful Web 服务,与大多数编程语言兼容。

若要在 MyBinder 上将此代码示例作为 Jupyter 笔记本运行,请选择“启动活页夹”锁屏提醒:

启动活页夹

该示例的源代码还可在 GitHub 上获得。

创建 Azure 资源

通过创建以下 Azure 资源之一开始使用必应新闻搜索 API:

必应搜索 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. 使用请求库以及你的订阅密钥和在上一步骤中创建的字典对象调用必应视觉搜索 API。

    response = requests.get(search_url, headers=headers, params=params)
    response.raise_for_status()
    search_results = json.dumps(response.json())
    
  2. 访问 API 响应中包含的项目的说明,该 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>")

后续步骤