Краткое руководство. Вызов API Bing для поиска в Интернете с использованием Python

Предупреждение

30 октября 2020 г. API-интерфейсы Поиск Bing перемещены из служб ИИ Azure в службы Поиск Bing. Эта документация приводится только для справки. Обновленную информацию см. в документации по API Поиска Bing. Инструкции по созданию ресурсов Azure для Поиска Bing приведены в статье Создание ресурса для Поиска Bing с помощью Azure Marketplace.

Используйте это краткое руководство, чтобы вызвать API Поиска в Интернете Bing. Это приложение Python отправляет поисковый запрос к API и показывает ответ в формате JSON. Это приложение создано на языке Python. Но API представляет собой веб-службу на основе REST, совместимую с большинством языков программирования.

Этот пример запускается как записная книжка Jupyter в MyBinder. Чтобы запустить его, щелкните эмблему запуска Binder.

Binder

Предварительные требования

Создание ресурса Azure

Чтобы начать работу с API Поиска в Интернете Bing, создайте один из следующих ресурсов Azure.

Ресурс Поиска Bing версии 7

  • доступен на портале Azure до удаления.
  • Используйте бесплатную ценовую категорию, чтобы опробовать службу, а затем выполните обновление до платного уровня для рабочей среды.

Ресурс для нескольких служб

  • доступен на портале Azure до удаления.
  • Используйте один и тот же ключ и конечную точку для приложений в нескольких службах ИИ Azure.

Определение переменных

  1. Замените значение subscription_key действительным ключом подписки из своей учетной записи Azure.

    subscription_key = "YOUR_ACCESS_KEY"
    assert subscription_key
    
  2. Объявите конечную точку API Bing для поиска в Интернете. Вы можете использовать глобальную конечную точку, указанную в коде ниже, или конечную точку личного поддомена, которая отображается на портале Azure для вашего ресурса.

    search_url = "https://api.bing.microsoft.com/v7.0/search"
    
  3. Кроме того, вы можете настроить поисковый запрос, заменив значение параметра search_term.

    search_term = "Azure Cognitive Services"
    

Выполнение запроса

В этом коде для вызова API Поиска в Интернете Bing и получения результатов в виде объекта JSON используется библиотека requests. Ключ API передается в словарь headers, а условие поиска и параметры запроса — в словарь params.

Полный список вариантов и параметров см. в разделе API Поиска в Интернете Bing версии 7.

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.

Дальнейшие действия

См. также раздел