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
- Python 2.x vagy 3.x
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
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'
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
Hozzon létre egy nevű függvényt
get_suggestions()
.Ebben a függvényben adja hozzá az előfizetői azonosítót egy szótárhoz
Ocp-Apim-Subscription-Key
kulcsként.HTTPS-ügyfélobjektum létrehozásához használható
http.client.HTTPSConnection()
. Küldjön egy kéréstGET
a használatávalrequest()
az elérési úttal és paraméterekkel, valamint a fejlécadatokkal.Tárolja a választ a következővel:
getresponse()
, és adja vissza a következőtresponse.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()
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"
},
. . .
]
}
}