Rychlý start: Odeslání žádosti o hledání do rozhraní REST API Bingu pro vyhledávání entit pomocí Pythonu
Upozornění
30. října 2020 se rozhraní API Vyhledávání Bingu přesunula ze služeb Azure AI na Vyhledávání Bingu Services. Tato dokumentace je k dispozici pouze pro referenci. Aktualizovanou dokumentaci najdete v dokumentaci k rozhraní API bingu pro vyhledávání. Pokyny k vytváření nových prostředků Azure pro vyhledávání Bingem najdete v tématu Vytvoření prostředku Vyhledávání Bingu prostřednictvím Azure Marketplace.
Pomocí tohoto rychlého startu provedete první volání rozhraní API Bingu pro vyhledávání entit a zobrazíte odpověď JSON. Tato jednoduchá aplikace Pythonu odešle do rozhraní API dotaz pro vyhledávání zpráv a zobrazí odpověď. Zdrojový kód pro tuto ukázku je k dispozici na GitHubu.
I když je tato aplikace napsaná v Pythonu, rozhraní API je webová služba RESTful kompatibilní s většinou programovacích jazyků.
Požadavky
- Python 2.x nebo 3.x
Vytvoření prostředku Azure
Začněte používat rozhraní API Bingu pro vyhledávání entit vytvořením jednoho z následujících prostředků Azure.
Prostředek Vyhledávání entit Bingu
- Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
- K vyzkoušení služby použijte bezplatnou cenovou úroveň a později upgradujte na placenou úroveň pro produkční prostředí.
- Vyhledávání entit Bingu je také nabízeno na placených úrovních prostředku Vyhledávání Bingu v7.
Prostředek s více službami
- Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
- Pro aplikace používejte stejný klíč a koncový bod napříč několika službami Azure AI.
Vytvoření a inicializace aplikace
Ve svém oblíbeném integrovaném vývojovém prostředí nebo editoru vytvořte nový soubor Pythonu a přidejte následující importy. Vytvořte proměnné pro klíč předplatného, koncový bod, trh a vyhledávací dotaz. Globální koncový bod můžete použít v následujícím kódu nebo vlastní koncový bod subdomény zobrazený v Azure Portal pro váš prostředek.
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'
Vytvořte adresu URL požadavku tak, že k parametru připojíte proměnnou
?mkt=
trhu. Zakódujte svůj dotaz pomocí adresy URL a připojte ho k parametru&q=
.params = '?mkt=' + mkt + '&q=' + urllib.parse.quote (query)
Odeslání požadavku a získání odpovědi
Vytvořte funkci s názvem
get_suggestions()
.V této funkci přidejte klíč předplatného do slovníku jako
Ocp-Apim-Subscription-Key
klíč.Slouží
http.client.HTTPSConnection()
k vytvoření objektu klienta HTTPS.GET
Odešlete požadavek pomocírequest()
cesty, parametrů a informací o hlavičce.Uložte odpověď pomocí
getresponse()
a vraťteresponse.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()
Zavolejte
get_suggestions()
a vytiskněte odpověď JSON.result = get_suggestions () print (json.dumps(json.loads(result), indent=4))
Příklad odpovědi JSON
Úspěšná odpověď se vrátí ve formátu JSON, jak je znázorněno v následujícím příkladu:
{
"_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"
},
. . .
]
}
}