Megosztás a következőn keresztül:


Rövid útmutató: Keresési kérés küldése a Bing Entity Search REST API-nak a Python használatával

Figyelmeztetés

2020. október 30-án a Bing Search API-k átkerültek az Azure AI-szolgáltatásokból a Bing Search-szolgáltatásokba. Ez a dokumentáció csak referenciaként érhető el. A frissített dokumentációt a Bing search API dokumentációjában találja. Az új Azure-erőforrások Bing-kereséshez való létrehozásával kapcsolatos utasításokért lásd: Bing Search-erőforrás létrehozása a Azure Marketplace keresztül.

Ezzel a rövid útmutatóval kezdeményezheti első hívását a Bing Entity Search API-hoz, és megtekintheti a JSON-választ. Ez az egyszerű Python-alkalmazás hírkeresési lekérdezést küld az API-nak, és megjeleníti a választ. A minta forráskódja elérhető a GitHubon.

Bár ez az alkalmazás Pythonban van megírva, az API egy RESTful webszolgáltatás, amely kompatibilis a legtöbb programozási nyelvvel.

Előfeltételek

Azure-erőforrás létrehozása

Kezdje el használni a Bing Entity Search API-t az alábbi Azure-erőforrások egyikének létrehozásával.

Bing Entity Search-erőforrás

  • A Azure Portal keresztül érhető el, amíg el nem törli az erőforrást.
  • Az ingyenes tarifacsomag használatával próbálja ki a szolgáltatást, és frissítsen később egy fizetős tarifacsomagra éles környezetben.
  • A Bing Entity Search a Bing Search v7-erőforrás fizetős szintjeiben is elérhető.

Többszolgáltatásos erőforrás

  • A Azure Portal keresztül érhető el, amíg el nem törli az erőforrást.
  • Használja ugyanazt a kulcsot és végpontot az alkalmazásokhoz több Azure AI-szolgáltatásban.

Az alkalmazás létrehozása és inicializálása

  1. Hozzon létre egy új Python-fájlt a kedvenc IDE-jében vagy szerkesztőjében, és adja hozzá a következő importálásokat. Hozzon létre változókat az előfizetési kulcshoz, a végponthoz, a piachoz és a keresési lekérdezéshez. Használhatja a globális végpontot a következő kódban, vagy használhatja az erőforráshoz tartozó Azure Portal megjelenített egyéni altartományvégpontot.

    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. Hozzon létre egy kérelem URL-címét úgy, hogy hozzáfűzi a piaci változót a ?mkt= paraméterhez. A lekérdezés URL-kódolása és hozzáfűzése a &q= paraméterhez.

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

Kérés küldése és válasz kérése

  1. Hozzon létre egy nevű függvényt get_suggestions().

  2. Ebben a függvényben adja hozzá az előfizetői azonosítót egy szótárhoz Ocp-Apim-Subscription-Key kulcsként.

  3. HTTPS-ügyfélobjektum létrehozásához használható http.client.HTTPSConnection() . Küldjön egy kérést GET a használatával request() az elérési úttal és paraméterekkel, valamint a fejlécadatokkal.

  4. Tárolja a választ a következővel: getresponse(), és adja vissza a következőt 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. Hívja meg get_suggestions()a parancsot, és nyomtassa ki a JSON-választ.

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

Példa JSON-válaszra

A rendszer JSON formátumban ad vissza egy sikeres választ a következő példában látható módon:

{
  "_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"
      },
      
      . . .
    ]
  }
}

Következő lépések