Freigeben über


Schnellstart: Senden einer Suchanfrage an die Bing Entity Search REST-API mithilfe von Python

Warnung

Am 30. Oktober 2020 wurden die Bing Search-APIs von Azure AI-Diensten zu Bing Search Services verschoben. Diese Dokumentation wird nur zur Referenz bereitgestellt. Aktualisierte Dokumentation finden Sie in der Bing-Such-API-Dokumentation. Anweisungen zum Erstellen neuer Azure-Ressourcen für die Bing-Suche finden Sie unter Erstellen einer Bing Search-Ressource über den Azure Marketplace.

Verwenden Sie diese Schnellstartanleitung, um Ihren ersten Aufruf an die Bing Entity Search-API durchzuführen und die JSON-Antwort anzuzeigen. Diese einfache Python-Anwendung sendet eine Nachrichtensuchabfrage an die API und zeigt die Antwort an. Der Quellcode für dieses Beispiel ist auf GitHub verfügbar.

Obwohl diese Anwendung in Python geschrieben ist, ist die API ein RESTful-Webdienst, der mit den meisten Programmiersprachen kompatibel ist.

Voraussetzungen

Erstellen einer Azure-Ressource

Beginnen Sie mit der Verwendung der Bing Entity Search-API, indem Sie eine der folgenden Azure-Ressourcen erstellen.

Bing-Entity-Search-Ressource

  • Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
  • Verwenden Sie das kostenlose Preisniveau, um den Dienst auszuprobieren und später auf eine kostenpflichtige Stufe für die Produktion zu aktualisieren.
  • Die Bing-Entitätssuche wird auch in kostenpflichtigen Ebenen der Bing Search v7-Ressource angeboten.

Multi-Service-Ressource

  • Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
  • Verwenden Sie denselben Schlüssel und Endpunkt für Ihre Anwendungen in mehreren Azure AI-Diensten.

Erstellen und Initialisieren der Anwendung

  1. Erstellen Sie eine neue Python-Datei in Ihrer bevorzugten IDE oder Ihrem Bevorzugten Editor, und fügen Sie die folgenden Importe hinzu. Erstellen Sie Variablen für Ihren Abonnementschlüssel, Endpunkt, Markt und Suchabfrage. Sie können den globalen Endpunkt im folgenden Code verwenden oder den benutzerdefinierten Unterdomänenendpunkt verwenden, der im Azure-Portal für Ihre Ressource angezeigt wird.

    import http.client, urllib.parse
    import json
    
    subscriptionKey = 'ENTER YOUR KEY HERE'
    host = 'api.bing.microsoft.com'
    path = '/v7.0/search'
    mkt = 'en-US'
    query = 'italian restaurants near me'
    
  2. Erstellen Sie eine Anforderungs-URL, indem Sie die Marktvariable an den ?mkt= Parameter anfügen. Url-codieren Sie Ihre Abfrage, und fügen Sie sie an den &q= Parameter an.

    params = '?mkt=' + mkt + '&q=' + urllib.parse.quote (query)
    

Senden einer Anforderung und Abrufen einer Antwort

  1. Erstellen Sie eine Funktion namens get_suggestions().

  2. Fügen Sie in dieser Funktion Ihren Abonnementschlüssel als Schlüssel in ein Wörterbuch mit Ocp-Apim-Subscription-Key hinzu.

  3. Verwenden Sie http.client.HTTPSConnection(), um ein HTTPS-Clientobjekt zu erstellen. Senden Sie eine GET-Anfrage mit request(), Ihrem Pfad und Parametern sowie den Kopfzeileninformationen.

  4. Speichern Sie die Antwort mit getresponse(), und geben Sie zurück response.read().

    def get_suggestions ():
     headers = {'Ocp-Apim-Subscription-Key': subscriptionKey}
     conn = http.client.HTTPSConnection (host)
     conn.request ("GET", path + params, None, headers)
     response = conn.getresponse ()
     return response.read()
    
  5. Rufen Sie get_suggestions() auf und geben Sie die JSON-Antwort aus.

    result = get_suggestions ()
    print (json.dumps(json.loads(result), indent=4))
    

Beispiel für JSON-Antwort

Eine erfolgreiche Antwort wird in JSON zurückgegeben, wie im folgenden Beispiel gezeigt:

{
  "_type": "SearchResponse",
  "queryContext": {
    "originalQuery": "italian restaurant near me",
    "askUserForLocation": true
  },
  "places": {
    "value": [
      {
        "_type": "LocalBusiness",
        "webSearchUrl": "https://www.bing.com/search?q=sinful+bakery&filters=local...",
        "name": "Liberty's Delightful Sinful Bakery & Cafe",
        "url": "https://www.contoso.com/",
        "entityPresentationInfo": {
          "entityScenario": "ListItem",
          "entityTypeHints": [
            "Place",
            "LocalBusiness"
          ]
        },
        "address": {
          "addressLocality": "Seattle",
          "addressRegion": "WA",
          "postalCode": "98112",
          "addressCountry": "US",
          "neighborhood": "Madison Park"
        },
        "telephone": "(800) 555-1212"
      },

      . . .
      {
        "_type": "Restaurant",
        "webSearchUrl": "https://www.bing.com/search?q=Pickles+and+Preserves...",
        "name": "Munson's Pickles and Preserves Farm",
        "url": "https://www.princi.com/",
        "entityPresentationInfo": {
          "entityScenario": "ListItem",
          "entityTypeHints": [
            "Place",
            "LocalBusiness",
            "Restaurant"
          ]
        },
        "address": {
          "addressLocality": "Seattle",
          "addressRegion": "WA",
          "postalCode": "98101",
          "addressCountry": "US",
          "neighborhood": "Capitol Hill"
        },
        "telephone": "(800) 555-1212"
      },
      
      . . .
    ]
  }
}

Nächste Schritte