Démarrage rapide : Envoyer une requête de recherche à l’API REST Recherche d’entités Bing en Python
Avertissement
Le 30 octobre 2020, les API de recherche Bing sont passées des services Azure AI aux services de recherche Bing. Cette documentation est fournie à des fins de référence uniquement. Pour accéder à la documentation mise à jour, consultez la documentation de l’API Recherche Bing. Pour obtenir des instructions sur la création de nouvelles ressources Azure pour Recherche Bing, consultez Créer une ressource Recherche Bing à l’aide de Place de marché Azure.
Utilisez ce guide de démarrage rapide pour effectuer votre premier appel à l’API Recherche d’entités Bing et voir la réponse JSON. Cette application simple en Python envoie une requête de recherche d’actualités à l’API, puis affiche la réponse. Le code source de cet exemple est disponible sur GitHub.
Bien que cette application soit écrite en Python, l’API est un service web RESTful compatible avec la plupart des langages de programmation.
Prérequis
- Python 2.x ou 3.x
Créer une ressource Azure
Commencez à utiliser l’API Recherche d’entités Bing en créant une des ressources Azure suivantes.
Ressource Recherche d’entités Bing
- Disponible via le portail Azure jusqu’à ce que vous supprimiez la ressource.
- Utilisez le niveau tarifaire Gratuit pour tester le service, puis effectuez par la suite une mise à niveau vers un niveau payant pour la production.
- L’API Recherche d’entités Bing est aussi proposée à certains niveaux de la ressource Recherche Bing v7.
Ressource multiservice
- Disponible via le portail Azure jusqu’à ce que vous supprimiez la ressource.
- Utilisez la même clé et le même point de terminaison pour vos applications, sur plusieurs services Azure AI.
Créer et initialiser l’application
Créez un fichier Python dans votre éditeur ou IDE favori, puis ajoutez les importations suivantes. Créez des variables pour votre clé d’abonnement, votre point de terminaison, votre marché et votre requête de recherche. Vous pouvez utiliser le point de terminaison global dans le code suivant, ou le point de terminaison de sous-domaine personnalisé affiché dans le portail Azure pour votre ressource.
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'
Créer une URL de requête en ajoutant la variable de votre marché au paramètre
?mkt=
. Encodez en URL votre requête et ajoutez-la au paramètre&q=
.params = '?mkt=' + mkt + '&q=' + urllib.parse.quote (query)
Envoyer une requête et obtenir une réponse
Créez une fonction nommée
get_suggestions()
.Dans cette fonction, ajoutez votre clé d’abonnement à un dictionnaire avec
Ocp-Apim-Subscription-Key
comme clé.Utilisez
http.client.HTTPSConnection()
pour créer un objet client HTTPS. Envoyez une requêteGET
en utilisantrequest()
avec votre chemin et vos paramètres, ainsi que vos informations d’en-tête.Stockez la réponse avec
getresponse()
et retournezresponse.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()
Appelez
get_suggestions()
et affichez la réponse JSON.result = get_suggestions () print (json.dumps(json.loads(result), indent=4))
Exemple de réponse JSON
Une réponse correcte est retournée au format JSON, comme dans l’exemple suivant :
{
"_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"
},
. . .
]
}
}