Démarrage rapide : Utiliser une bibliothèque de client Recherche Web Bing
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.
La bibliothèque de client de l’API Recherche Web Bing simplifie l’intégration de l’API dans votre application C#. Dans ce démarrage rapide, vous allez apprendre à instancier un client, envoyer une requête et imprimer la réponse.
Vous voulez voir le code tout de suite ? Des exemples de bibliothèques de client Recherche Bing pour .NET sont disponibles sur GitHub.
Prérequis
Voici quelques points dont vous aurez besoin avant d’exécuter ce démarrage rapide :
Créer une ressource Azure
Commencez à utiliser l’API Recherche Web Bing en créant une des ressources Azure suivantes :
- 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.
- 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 un projet et installer des dépendances
Conseil
Récupérer le dernier code en tant que solution Visual Studio à partir de GitHub.
La première étape consiste à créer un nouveau projet de console. Si vous avez besoin d’aide pour configurer un projet de console, consultez Hello World--votre premier programme (Guide de programmation C#). Pour utiliser le kit de développement logiciel de l’API Recherche Web Bing dans votre application, vous devrez installer Microsoft.Azure.CognitiveServices.Search.WebSearch
à l’aide du gestionnaire de package NuGet.
Le package du kit de développement Web de l’API Recherche Web Bing installe également :
- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Json
Déclarer des dépendances
Ouvrez votre projet dans Visual Studio ou Visual Studio Code et importez ces dépendances :
using System;
using System.Collections.Generic;
using Microsoft.Azure.CognitiveServices.Search.WebSearch;
using Microsoft.Azure.CognitiveServices.Search.WebSearch.Models;
using System.Linq;
using System.Threading.Tasks;
Créer la génération de modèles automatique du projet
Lorsque vous avez créé votre nouveau projet de console, il est nécessaire de créer un espace de noms et une classe pour votre application. Votre programme doit avoir l’aspect de cet exemple :
namespace WebSearchSDK
{
class YOUR_PROGRAM
{
// The code in the following sections goes here.
}
}
Dans les sections suivantes, nous allons créer notre exemple d’application au sein de cette classe.
Construire une requête
Ce code construit la requête de la recherche.
public static async Task WebResults(WebSearchClient client)
{
try
{
var webData = await client.Web.SearchAsync(query: "Yosemite National Park");
Console.WriteLine("Searching for \"Yosemite National Park\"");
// Code for handling responses is provided in the next section...
}
catch (Exception ex)
{
Console.WriteLine("Encountered exception. " + ex.Message);
}
}
Gérer la réponse
Ensuite, nous allons ajouter du code pour analyser la réponse et imprimer les résultats. Le Name
et Url
pour la première page web, image, vidéo et le premier bulletin d’informations sont imprimés s’ils sont présents dans l’objet de la réponse.
if (webData?.WebPages?.Value?.Count > 0)
{
// find the first web page
var firstWebPagesResult = webData.WebPages.Value.FirstOrDefault();
if (firstWebPagesResult != null)
{
Console.WriteLine("Webpage Results # {0}", webData.WebPages.Value.Count);
Console.WriteLine("First web page name: {0} ", firstWebPagesResult.Name);
Console.WriteLine("First web page URL: {0} ", firstWebPagesResult.Url);
}
else
{
Console.WriteLine("Didn't find any web pages...");
}
}
else
{
Console.WriteLine("Didn't find any web pages...");
}
/*
* Images
* If the search response contains images, the first result's name
* and url are printed.
*/
if (webData?.Images?.Value?.Count > 0)
{
// find the first image result
var firstImageResult = webData.Images.Value.FirstOrDefault();
if (firstImageResult != null)
{
Console.WriteLine("Image Results # {0}", webData.Images.Value.Count);
Console.WriteLine("First Image result name: {0} ", firstImageResult.Name);
Console.WriteLine("First Image result URL: {0} ", firstImageResult.ContentUrl);
}
else
{
Console.WriteLine("Didn't find any images...");
}
}
else
{
Console.WriteLine("Didn't find any images...");
}
/*
* News
* If the search response contains news articles, the first result's name
* and url are printed.
*/
if (webData?.News?.Value?.Count > 0)
{
// find the first news result
var firstNewsResult = webData.News.Value.FirstOrDefault();
if (firstNewsResult != null)
{
Console.WriteLine("\r\nNews Results # {0}", webData.News.Value.Count);
Console.WriteLine("First news result name: {0} ", firstNewsResult.Name);
Console.WriteLine("First news result URL: {0} ", firstNewsResult.Url);
}
else
{
Console.WriteLine("Didn't find any news articles...");
}
}
else
{
Console.WriteLine("Didn't find any news articles...");
}
/*
* Videos
* If the search response contains videos, the first result's name
* and url are printed.
*/
if (webData?.Videos?.Value?.Count > 0)
{
// find the first video result
var firstVideoResult = webData.Videos.Value.FirstOrDefault();
if (firstVideoResult != null)
{
Console.WriteLine("\r\nVideo Results # {0}", webData.Videos.Value.Count);
Console.WriteLine("First Video result name: {0} ", firstVideoResult.Name);
Console.WriteLine("First Video result URL: {0} ", firstVideoResult.ContentUrl);
}
else
{
Console.WriteLine("Didn't find any videos...");
}
}
else
{
Console.WriteLine("Didn't find any videos...");
}
Déclarer la méthode principale
Dans cette application, la méthode principale inclut le code qui instancie le client, valide le subscriptionKey
et appelle WebResults
. Assurez-vous que vous entrez une clé d’abonnement valide pour votre compte Azure avant de continuer.
static async Task Main(string[] args)
{
var client = new WebSearchClient(new ApiKeyServiceClientCredentials("YOUR_SUBSCRIPTION_KEY"));
await WebResults(client);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
Exécution de l'application
Exécutons maintenant l’application !
dotnet run
Définir des fonctions et filtrer des résultats
Maintenant que vous avez effectué votre premier appel à l’API Recherche Web Bing, examinons quelques fonctions qui mettent en évidence les fonctionnalités du kit de développement logiciel pour affiner des requêtes et filtrer les résultats. Chaque fonction peut être ajoutée à votre programme C# créée dans la section précédente.
Limiter le nombre de résultats retournés par Bing
Cet exemple utilise les paramètres count
et offset
pour limiter le nombre de résultats retournés par la recherche « Meilleurs restaurants à Seattle ». Le Name
et Url
pour le premier résultat sont imprimés.
Ajoutez ce code à votre projet de console :
public static async Task WebResultsWithCountAndOffset(WebSearchClient client) { try { var webData = await client.Web.SearchAsync(query: "Best restaurants in Seattle", offset: 10, count: 20); Console.WriteLine("\r\nSearching for \" Best restaurants in Seattle \""); if (webData?.WebPages?.Value?.Count > 0) { var firstWebPagesResult = webData.WebPages.Value.FirstOrDefault(); if (firstWebPagesResult != null) { Console.WriteLine("Web Results #{0}", webData.WebPages.Value.Count); Console.WriteLine("First web page name: {0} ", firstWebPagesResult.Name); Console.WriteLine("First web page URL: {0} ", firstWebPagesResult.Url); } else { Console.WriteLine("Couldn't find first web result!"); } } else { Console.WriteLine("Didn't see any Web data.."); } } catch (Exception ex) { Console.WriteLine("Encountered exception. " + ex.Message); } }
Ajoutez
WebResultsWithCountAndOffset
àmain
:static async Task Main(string[] args) { var client = new WebSearchClient(new ApiKeyServiceClientCredentials("YOUR_SUBSCRIPTION_KEY")); await WebResults(client); // Search with count and offset... await WebResultsWithCountAndOffset(client); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); }
Exécutez l'application.
Filtrer les actualités
Cet exemple utilise le paramètre response_filter
pour filtrer les résultats de la recherche. Les résultats de la recherche retournés sont limités aux articles d’actualité pour « Microsoft ». Le Name
et Url
pour le premier résultat sont imprimés.
Ajoutez ce code à votre projet de console :
public static async Task WebSearchWithResponseFilter(WebSearchClient client) { try { IList<string> responseFilterstrings = new List<string>() { "news" }; var webData = await client.Web.SearchAsync(query: "Microsoft", responseFilter: responseFilterstrings); Console.WriteLine("\r\nSearching for \" Microsoft \" with response filter \"news\""); if (webData?.News?.Value?.Count > 0) { var firstNewsResult = webData.News.Value.FirstOrDefault(); if (firstNewsResult != null) { Console.WriteLine("News Results #{0}", webData.News.Value.Count); Console.WriteLine("First news result name: {0} ", firstNewsResult.Name); Console.WriteLine("First news result URL: {0} ", firstNewsResult.Url); } else { Console.WriteLine("Couldn't find first News results!"); } } else { Console.WriteLine("Didn't see any News data.."); } } catch (Exception ex) { Console.WriteLine("Encountered exception. " + ex.Message); } }
Ajoutez
WebResultsWithCountAndOffset
àmain
:static Task Main(string[] args) { var client = new WebSearchClient(new ApiKeyServiceClientCredentials("YOUR_SUBSCRIPTION_KEY")); await WebResults(client); // Search with count and offset... await WebResultsWithCountAndOffset(client); // Search with news filter... await WebSearchWithResponseFilter(client); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); }
Exécutez l'application.
Utiliser la recherche sécurisée, le comptage des réponses et le filtre Promouvoir
Cet exemple utilise les paramètres answer_count
, promote
et safe_search
pour filtrer des résultats de recherche pour « Vidéos de musique ». Le Name
et ContentUrl
pour le premier résultat sont affichés.
Ajoutez ce code à votre projet de console :
public static async Task WebSearchWithAnswerCountPromoteAndSafeSearch(WebSearchClient client) { try { IList<string> promoteAnswertypeStrings = new List<string>() { "videos" }; var webData = await client.Web.SearchAsync(query: "Music Videos", answerCount: 2, promote: promoteAnswertypeStrings, safeSearch: SafeSearch.Strict); Console.WriteLine("\r\nSearching for \"Music Videos\""); if (webData?.Videos?.Value?.Count > 0) { var firstVideosResult = webData.Videos.Value.FirstOrDefault(); if (firstVideosResult != null) { Console.WriteLine("Video Results # {0}", webData.Videos.Value.Count); Console.WriteLine("First Video result name: {0} ", firstVideosResult.Name); Console.WriteLine("First Video result URL: {0} ", firstVideosResult.ContentUrl); } else { Console.WriteLine("Couldn't find videos results!"); } } else { Console.WriteLine("Didn't see any data.."); } } catch (Exception ex) { Console.WriteLine("Encountered exception. " + ex.Message); } }
Ajoutez
WebResultsWithCountAndOffset
àmain
:static async Task Main(string[] args) { var client = new WebSearchClient(new ApiKeyServiceClientCredentials("YOUR_SUBSCRIPTION_KEY")); await WebResults(client); // Search with count and offset... await WebResultsWithCountAndOffset(client); // Search with news filter... await WebSearchWithResponseFilter(client); // Search with answer count, promote, and safe search await WebSearchWithAnswerCountPromoteAndSafeSearch(client); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); }
Exécutez l'application.
Nettoyer les ressources
Lorsque vous avez terminé ce projet, veillez à supprimer votre clé d’abonnement dans le code de l’application.
Étapes suivantes
La bibliothèque de client de l’API Recherche Web Bing simplifie l’intégration de l’API dans votre application Java. Dans ce démarrage rapide, vous allez apprendre à envoyer une requête, recevoir une réponse JSON et filtrer et analyser les résultats.
Vous voulez voir le code tout de suite ? Des exemples de bibliothèques de client Recherche Bing pour Java sont disponibles sur GitHub.
Prérequis
Voici quelques points dont vous aurez besoin avant d’exécuter ce démarrage rapide :
- JDK 7 ou 8
- Apache Maven ou votre outil favori d’automatisation de création
- Une clé d’abonnement
Créer une ressource Azure
Commencez à utiliser l’API Recherche Web Bing en créant une des ressources Azure suivantes :
- 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.
- 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 un projet et configurer votre fichier POM
Créez un nouveau projet Java à l’aide de Maven ou de votre outil favori d’automatisation de création. En supposant que vous utilisez Maven, ajoutez les lignes suivantes à votre fichier POM. Remplacez toutes les instances de mainClass
par votre application.
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4.0</version>
<configuration>
<!--Your comment
Replace the mainClass with the path to your Java application.
It should begin with com and doesn't require the .java extension.
For example: com.bingwebsearch.app.BingWebSearchSample. This maps to
The following directory structure:
src/main/java/com/bingwebsearch/app/BingWebSearchSample.java.
-->
<mainClass>com.path.to.your.app.APP_NAME</mainClass>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<!--Your comment
Replace the mainClass with the path to your Java application.
For example: com.bingwebsearch.app.BingWebSearchSample.java.
This maps to the following directory structure:
src/main/java/com/bingwebsearch/app/BingWebSearchSample.java.
-->
<mainClass>com.path.to.your.app.APP_NAME.java</mainClass>
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure</artifactId>
<version>1.9.0</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.3</version>
</dependency>
<dependency>
<groupId>com.microsoft.azure.cognitiveservices</groupId>
<artifactId>azure-cognitiveservices-websearch</artifactId>
<version>1.0.1</version>
</dependency>
</dependencies>
Déclarer des dépendances
Ouvrez votre projet dans votre IDE ou éditeur favori et importez ces dépendances :
import com.microsoft.azure.cognitiveservices.search.websearch.BingWebSearchAPI;
import com.microsoft.azure.cognitiveservices.search.websearch.BingWebSearchManager;
import com.microsoft.azure.cognitiveservices.search.websearch.models.ImageObject;
import com.microsoft.azure.cognitiveservices.search.websearch.models.NewsArticle;
import com.microsoft.azure.cognitiveservices.search.websearch.models.SearchResponse;
import com.microsoft.azure.cognitiveservices.search.websearch.models.VideoObject;
import com.microsoft.azure.cognitiveservices.search.websearch.models.WebPage;
Si vous avez créé le projet avec Maven, le package doit déjà être déclaré. Sinon, déclarez-le maintenant. Par exemple :
package com.bingwebsearch.app
Déclarez la classe BingWebSearchSample
Déclarez la classe BingWebSearchSample
. Elle inclura la plupart de notre code, notamment la méthode main
.
public class BingWebSearchSample {
// The code in the following sections goes here.
}
Construire une requête
La méthode runSample
, qui se trouve dans la classe BingWebSearchSample
, construit la requête. Copiez ce code dans votre application :
public static boolean runSample(BingWebSearchAPI client) {
/*
* This function performs the search.
*
* @param client instance of the Bing Web Search API client
* @return true if sample runs successfully
*/
try {
/*
* Performs a search based on the .withQuery and prints the name and
* url for the first web pages, image, news, and video result
* included in the response.
*/
System.out.println("Searched Web for \"Xbox\"");
// Construct the request.
SearchResponse webData = client.bingWebs().search()
.withQuery("Xbox")
.withMarket("en-us")
.withCount(10)
.execute();
// Code continues in the next section...
Gérer la réponse
Ensuite, nous allons ajouter du code pour analyser la réponse et imprimer les résultats. Le name
et url
pour la première page web, image, vidéo et le premier bulletin d’informations sont imprimés lorsqu’ils sont inclus dans l’objet de la réponse.
/*
* WebPages
* If the search response has web pages, the first result's name
* and url are printed.
*/
if (webData != null && webData.webPages() != null && webData.webPages().value() != null &&
webData.webPages().value().size() > 0) {
// find the first web page
WebPage firstWebPagesResult = webData.webPages().value().get(0);
if (firstWebPagesResult != null) {
System.out.println(String.format("Webpage Results#%d", webData.webPages().value().size()));
System.out.println(String.format("First web page name: %s ", firstWebPagesResult.name()));
System.out.println(String.format("First web page URL: %s ", firstWebPagesResult.url()));
} else {
System.out.println("Couldn't find the first web result!");
}
} else {
System.out.println("Didn't find any web pages...");
}
/*
* Images
* If the search response has images, the first result's name
* and url are printed.
*/
if (webData != null && webData.images() != null && webData.images().value() != null &&
webData.images().value().size() > 0) {
// find the first image result
ImageObject firstImageResult = webData.images().value().get(0);
if (firstImageResult != null) {
System.out.println(String.format("Image Results#%d", webData.images().value().size()));
System.out.println(String.format("First Image result name: %s ", firstImageResult.name()));
System.out.println(String.format("First Image result URL: %s ", firstImageResult.contentUrl()));
} else {
System.out.println("Couldn't find the first image result!");
}
} else {
System.out.println("Didn't find any images...");
}
/*
* News
* If the search response has news articles, the first result's name
* and url are printed.
*/
if (webData != null && webData.news() != null && webData.news().value() != null &&
webData.news().value().size() > 0) {
// find the first news result
NewsArticle firstNewsResult = webData.news().value().get(0);
if (firstNewsResult != null) {
System.out.println(String.format("News Results#%d", webData.news().value().size()));
System.out.println(String.format("First news result name: %s ", firstNewsResult.name()));
System.out.println(String.format("First news result URL: %s ", firstNewsResult.url()));
} else {
System.out.println("Couldn't find the first news result!");
}
} else {
System.out.println("Didn't find any news articles...");
}
/*
* Videos
* If the search response has videos, the first result's name
* and url are printed.
*/
if (webData != null && webData.videos() != null && webData.videos().value() != null &&
webData.videos().value().size() > 0) {
// find the first video result
VideoObject firstVideoResult = webData.videos().value().get(0);
if (firstVideoResult != null) {
System.out.println(String.format("Video Results#%s", webData.videos().value().size()));
System.out.println(String.format("First Video result name: %s ", firstVideoResult.name()));
System.out.println(String.format("First Video result URL: %s ", firstVideoResult.contentUrl()));
} else {
System.out.println("Couldn't find the first video result!");
}
} else {
System.out.println("Didn't find any videos...");
}
Déclarer la méthode principale
Dans cette application, la méthode principale inclut le code qui instancie le client, valide le subscriptionKey
et appelle runSample
. Assurez-vous que vous entrez une clé d’abonnement valide pour votre compte Azure avant de continuer.
public static void main(String[] args) {
try {
// Enter a valid subscription key for your account.
final String subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
// Instantiate the client.
BingWebSearchAPI client = BingWebSearchManager.authenticate(subscriptionKey);
// Make a call to the Bing Web Search API.
runSample(client);
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
Exécuter le programme
L’étape finale consiste à exécuter votre programme !
mvn compile exec:java
Nettoyer les ressources
Lorsque vous avez terminé ce projet, veillez à supprimer votre clé d’abonnement dans le code du programme.
Étapes suivantes
Voir aussi
La bibliothèque de client de l’API Recherche Web Bing simplifie l’intégration de l’API dans votre application Node.js. Dans ce démarrage rapide, vous allez apprendre à instancier un client, envoyer une requête et imprimer la réponse.
Vous voulez voir le code tout de suite ? Des exemples de bibliothèques de client Recherche Bing pour JavaScript sont disponibles sur GitHub.
Conditions préalables requises
Voici quelques points dont vous aurez besoin avant d’exécuter ce démarrage rapide :
- Node.js 6 ou version ultérieure
- Une clé d’abonnement
Créer une ressource Azure
Commencez à utiliser l’API Recherche Web Bing en créant une des ressources Azure suivantes :
- 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.
- 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.
Configurer l''environnement de développement
Commençons par la configuration de l’environnement de développement pour notre projet Node.js.
Créez un nouveau répertoire pour votre projet :
mkdir YOUR_PROJECT
Créez un nouveau fichier de package :
cd YOUR_PROJECT npm init
Maintenant, nous allons installer certains modules Azure et les ajouter à
package.json
:npm install --save @azure/cognitiveservices-websearch npm install --save @azure/ms-rest-azure-js
Créer un projet et déclarer les modules requis
Dans le même répertoire que votre package.json
, créez un projet Node.js à l’aide de votre IDE ou éditeur favori. Par exemple : sample.js
.
Ensuite, copiez ce code dans votre projet. Il charge les modules installés dans la section précédente.
const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials;
const WebSearchAPIClient = require('@azure/cognitiveservices-websearch');
Instancier le client
Ce code instancie un client et l’utilisation du module @azure/cognitiveservices-websearch
. Assurez-vous que vous entrez une clé d’abonnement valide pour votre compte Azure avant de continuer.
let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY');
let webSearchApiClient = new WebSearchAPIClient(credentials);
Effectuer une requête et imprimer les résultats
Utilisez le client pour envoyer une requête de recherche pour l’API Recherche Web Bing. Si la réponse comprend des résultats pour les éléments dans le tableau properties
, le result.value
est imprimé à la console.
webSearchApiClient.web.search('seahawks').then((result) => {
let properties = ["images", "webPages", "news", "videos"];
for (let i = 0; i < properties.length; i++) {
if (result[properties[i]]) {
console.log(result[properties[i]].value);
} else {
console.log(`No ${properties[i]} data`);
}
}
}).catch((err) => {
throw err;
})
Exécuter le programme
L’étape finale consiste à exécuter votre programme !
Nettoyer les ressources
Lorsque vous avez terminé ce projet, veillez à supprimer votre clé d’abonnement dans le code du programme.
Étapes suivantes
Voir aussi
La bibliothèque de client de l’API Recherche Web Bing simplifie l’intégration de l’API dans votre application Python. Dans ce démarrage rapide, vous allez apprendre à envoyer une requête, recevoir une réponse JSON et filtrer et analyser les résultats.
Vous voulez voir le code tout de suite ? Des exemples pour les bibliothèques clientes Recherche Bing pour Python sont disponibles sur GitHub.
Prérequis
Le kit de développement logiciel de l’API Recherche Web Bing est compatible avec Python 2.7 et 3.6+. Nous vous recommandons d’utiliser un environnement virtuel pour ce démarrage rapide.
- Python 2.7 ou 3.6+
- virtualenv pour Python 2.7
- venv pour Python 3.x
Créer une ressource Azure
Commencez à utiliser l’API Recherche Web Bing en créant une des ressources Azure suivantes :
- 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.
- 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 configurer votre environnement virtuel
Les instructions pour installer et configurer un environnement virtuel sont différentes pour Python 2.x et Python 3.x. Suivez les étapes ci-dessous pour créer et initialiser votre environnement virtuel.
Python 2.x
Créer un environnement virtuel avec virtualenv
pour Python 2.7 :
virtualenv mytestenv
Activez votre environnement :
cd mytestenv
source bin/activate
Installez les dépendances du SDK Recherche Web Bing :
python -m pip install azure-cognitiveservices-search-websearch
Python 3.x
Créer un environnement virtuel avec venv
pour Python 3.x :
python -m venv mytestenv
Activez votre environnement :
mytestenv\Scripts\activate.bat
Installez les dépendances du SDK Recherche Web Bing :
cd mytestenv
python -m pip install azure-cognitiveservices-search-websearch
Créer un client et imprimer vos premiers résultats
Maintenant que vous avez configuré votre environnement virtuel et installé les dépendances, nous allons créer un client. Le client gérera les requêtes pour l’API Recherche Web Bing et ses réponses.
Si la réponse contient des pages web, des images, des actualités ou des vidéos, le premier résultat de toutes ces catégories est imprimé.
Créez un projet Python dans votre IDE ou votre éditeur favori.
Copiez cet exemple de code dans votre projet.
endpoint
peut être le point de terminaison global ci-dessous, ou le point de terminaison de sous-domaine personnalisé affiché dans le portail Azure pour votre ressource :# Import required modules. from azure.cognitiveservices.search.websearch import WebSearchClient from azure.cognitiveservices.search.websearch.models import SafeSearch from msrest.authentication import CognitiveServicesCredentials # Replace with your subscription key. subscription_key = "YOUR_SUBSCRIPTION_KEY" # Instantiate the client and replace with your endpoint. client = WebSearchClient(endpoint="YOUR_ENDPOINT", credentials=CognitiveServicesCredentials(subscription_key)) # Make a request. Replace Yosemite if you'd like. web_data = client.web.search(query="Yosemite") print("\r\nSearched for Query# \" Yosemite \"") ''' Web pages If the search response contains web pages, the first result's name and url are printed. ''' if hasattr(web_data.web_pages, 'value'): print("\r\nWebpage Results#{}".format(len(web_data.web_pages.value))) first_web_page = web_data.web_pages.value[0] print("First web page name: {} ".format(first_web_page.name)) print("First web page URL: {} ".format(first_web_page.url)) else: print("Didn't find any web pages...") ''' Images If the search response contains images, the first result's name and url are printed. ''' if hasattr(web_data.images, 'value'): print("\r\nImage Results#{}".format(len(web_data.images.value))) first_image = web_data.images.value[0] print("First Image name: {} ".format(first_image.name)) print("First Image URL: {} ".format(first_image.url)) else: print("Didn't find any images...") ''' News If the search response contains news, the first result's name and url are printed. ''' if hasattr(web_data.news, 'value'): print("\r\nNews Results#{}".format(len(web_data.news.value))) first_news = web_data.news.value[0] print("First News name: {} ".format(first_news.name)) print("First News URL: {} ".format(first_news.url)) else: print("Didn't find any news...") ''' If the search response contains videos, the first result's name and url are printed. ''' if hasattr(web_data.videos, 'value'): print("\r\nVideos Results#{}".format(len(web_data.videos.value))) first_video = web_data.videos.value[0] print("First Videos name: {} ".format(first_video.name)) print("First Videos URL: {} ".format(first_video.url)) else: print("Didn't find any videos...")
Remplacez
SUBSCRIPTION_KEY
par une clé d’abonnement valide.Remplacez
YOUR_ENDPOINT
par votre URL de point de terminaison dans le portail, puis supprimez la section « bing/v7.0 » du point de terminaison.Exécutez le programme. Par exemple :
python your_program.py
.
Définir des fonctions et filtrer des résultats
À présent que vous avez fait votre premier appel à l’API Recherche Web Bing, examinons quelques fonctions. Les sections suivantes mettent en évidence les fonctionnalités du Kit de développement logiciel pour affiner les requêtes et filtrer les résultats. Chaque fonction peut être ajoutée au programme Python que vous avez créé dans la section précédente.
Limiter le nombre de résultats retournés par Bing
Cet exemple utilise les paramètres count
et offset
pour limiter le nombre de résultats retournés à l’aide de la search
méthode du kit de développement logiciel. Le name
et url
pour le premier résultat sont imprimés.
Ajoutez ce code à votre projet Python :
# Declare the function. def web_results_with_count_and_offset(subscription_key): client = WebSearchAPI(CognitiveServicesCredentials(subscription_key)) try: ''' Set the query, offset, and count using the SDK's search method. See: https://learn.microsoft.com/python/api/azure-cognitiveservices-search-websearch/azure.cognitiveservices.search.websearch.operations.weboperations?view=azure-python. ''' web_data = client.web.search(query="Best restaurants in Seattle", offset=10, count=20) print("\r\nSearching for \"Best restaurants in Seattle\"") if web_data.web_pages.value: ''' If web pages are available, print the # of responses, and the first and second web pages returned. ''' print("Webpage Results#{}".format(len(web_data.web_pages.value))) first_web_page = web_data.web_pages.value[0] print("First web page name: {} ".format(first_web_page.name)) print("First web page URL: {} ".format(first_web_page.url)) else: print("Didn't find any web pages...") except Exception as err: print("Encountered exception. {}".format(err))
Exécutez le programme.
Filtrer les actualités et l’actualisation
Cet exemple utilise les paramètres response_filter
et freshness
pour filtrer des résultats de recherche à l’aide de la search
méthode du kit de développement logiciel. Les résultats de recherche retournés sont limités aux articles d’actualité et aux pages découverts par Bing au cours des dernières 24 heures. Le name
et url
pour le premier résultat sont imprimés.
Ajoutez ce code à votre projet Python :
# Declare the function. def web_search_with_response_filter(subscription_key): client = WebSearchAPI(CognitiveServicesCredentials(subscription_key)) try: ''' Set the query, response_filter, and freshness using the SDK's search method. See: https://learn.microsoft.com/python/api/azure-cognitiveservices-search-websearch/azure.cognitiveservices.search.websearch.operations.weboperations?view=azure-python. ''' web_data = client.web.search(query="xbox", response_filter=["News"], freshness="Day") print("\r\nSearching for \"xbox\" with the response filter set to \"News\" and freshness filter set to \"Day\".") ''' If news articles are available, print the # of responses, and the first and second articles returned. ''' if web_data.news.value: print("# of news results: {}".format(len(web_data.news.value))) first_web_page = web_data.news.value[0] print("First article name: {} ".format(first_web_page.name)) print("First article URL: {} ".format(first_web_page.url)) print("") second_web_page = web_data.news.value[1] print("\nSecond article name: {} ".format(second_web_page.name)) print("Second article URL: {} ".format(second_web_page.url)) else: print("Didn't find any news articles...") except Exception as err: print("Encountered exception. {}".format(err)) # Call the function. web_search_with_response_filter(subscription_key)
Exécutez le programme.
Utiliser la recherche sécurisée, le comptage des réponses et le filtre Promouvoir
Cet exemple utilise les paramètres answer_count
, promote
et safe_search
pour filtrer des résultats de recherche à l’aide de la search
méthode du kit de développement logiciel. Le name
et url
pour le premier résultat sont affichés.
Ajoutez ce code à votre projet Python :
# Declare the function. def web_search_with_answer_count_promote_and_safe_search(subscription_key): client = WebSearchAPI(CognitiveServicesCredentials(subscription_key)) try: ''' Set the query, answer_count, promote, and safe_search parameters using the SDK's search method. See: https://learn.microsoft.com/python/api/azure-cognitiveservices-search-websearch/azure.cognitiveservices.search.websearch.operations.weboperations?view=azure-python. ''' web_data = client.web.search( query="Niagara Falls", answer_count=2, promote=["videos"], safe_search=SafeSearch.strict # or directly "Strict" ) print("\r\nSearching for \"Niagara Falls\"") ''' If results are available, print the # of responses, and the first result returned. ''' if web_data.web_pages.value: print("Webpage Results#{}".format(len(web_data.web_pages.value))) first_web_page = web_data.web_pages.value[0] print("First web page name: {} ".format(first_web_page.name)) print("First web page URL: {} ".format(first_web_page.url)) else: print("Didn't see any Web data..") except Exception as err: print("Encountered exception. {}".format(err))
Exécutez le programme.
Nettoyer les ressources
Lorsque vous avez terminé ce projet, veillez à supprimer votre clé d’abonnement dans le code du programme et à désactiver votre environnement virtuel.