Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Waarschuwing
Op 30 oktober 2020 zijn de Bing Search-API's verplaatst van Azure AI-services naar Bing Search Services. Deze documentatie wordt alleen ter referentie verstrekt. Zie de bing zoek-API-documentatie voor bijgewerkte documentatie. Zie Een Bing Search-resource maken via Azure Marketplace voor instructies voor het maken van nieuwe Azure-resources voor Bing Search.
Met de Bing Web Search-clientbibliotheek kunt u Bing Web Search eenvoudig integreren in uw C#-toepassing. In deze quickstart leert u hoe u een client instantieert, een aanvraag verzendt en het antwoord afdrukt.
Wilt u de code nu zien? Voorbeelden voor de Bing Search-clientbibliotheken voor .NET zijn beschikbaar op GitHub.
Vereiste voorwaarden
Hier volgen enkele dingen die u nodig hebt voordat u deze quickstart uitvoert:
Een Azure-resource maken
Begin met het gebruik van de Bing Webzoekopdrachten-API door een van de volgende Azure-resources te maken:
- Beschikbaar via de Azure-portal totdat u de resource verwijdert.
- Gebruik de gratis prijscategorie om de service uit te proberen en voer later een upgrade uit naar een betaalde laag voor productie.
Resource voor meerdere services
- Beschikbaar via de Azure-portal totdat u de resource verwijdert.
- Gebruik dezelfde sleutel en hetzelfde eindpunt voor uw toepassingen, in meerdere Azure AI-services.
Een project maken en afhankelijkheden installeren
Aanbeveling
Haal de meest recente code op als Visual Studio-oplossing vanuit GitHub.
De eerste stap is het maken van een nieuw consoleproject. Als u hulp nodig hebt bij het instellen van een consoleproject, raadpleegt u Hello World - Uw eerste programma (C#-programmeerhandleiding). Als u de Bing Web Search SDK in uw toepassing wilt gebruiken, moet u Microsoft.Azure.CognitiveServices.Search.WebSearch installeren met de NuGet-pakketbeheer.
Het Web Search SDK-pakket installeert ook:
- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Json
Afhankelijkheden declareren
Open uw project in Visual Studio of Visual Studio Code en importeer deze afhankelijkheden:
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;
Projectstructuur maken
Wanneer u het nieuwe consoleproject hebt gemaakt, moeten er een naamruimte en klasse voor uw toepassing zijn gemaakt. Uw programma moet er als volgt uitzien:
namespace WebSearchSDK
{
class YOUR_PROGRAM
{
// The code in the following sections goes here.
}
}
In de volgende secties bouwen we onze voorbeeldtoepassing in deze klasse.
Een aanvraag maken
Met deze code wordt de zoekquery samengesteld.
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);
}
}
Het verwerken van het antwoord
Vervolgens gaan we code toevoegen om het antwoord te parseren en de resultaten af te drukken. De Name en Url voor de eerste webpagina, afbeelding, nieuwsartikel en video worden afgedrukt als deze aanwezig zijn in het antwoordobject.
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...");
}
De hoofdmethode declareren
In deze toepassing bevat de hoofdmethode code waarmee de client wordt geïnstantieerd, de subscriptionKey wordt gevalideerd en WebResults wordt aangeroepen. Zorg ervoor dat u een geldige abonnementssleutel voor uw Azure-account invoert voordat u doorgaat.
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();
}
De toepassing uitvoeren
We gaan de toepassing uitvoeren.
dotnet run
Functies definiëren en resultaten filteren
Nu u uw eerste aanroep naar de Bing Webzoekopdrachten-API hebt gedaan, gaan we een paar functies bekijken die de SDK-functionaliteit markeren voor het verfijnen van query's en het filteren van resultaten. Elke functie kan worden toegevoegd aan uw C#-toepassing die in de vorige sectie is gemaakt.
Het aantal resultaten beperken dat door Bing wordt geretourneerd
In dit voorbeeld worden de count en offset parameters gebruikt om het aantal resultaten te beperken dat wordt geretourneerd voor 'Beste restaurants in Seattle'. Het Name en Url voor het eerste resultaat worden afgedrukt.
Voeg deze code toe aan uw consoleproject:
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); } }Toevoegen
WebResultsWithCountAndOffsetaanmain: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(); }Voer de toepassing uit.
Filteren op nieuws
In dit voorbeeld wordt de response_filter parameter gebruikt om zoekresultaten te filteren. De geretourneerde zoekresultaten zijn beperkt tot nieuwsartikelen voor 'Microsoft'. Het Name en Url voor het eerste resultaat worden afgedrukt.
Voeg deze code toe aan uw consoleproject:
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); } }Toevoegen
WebResultsWithCountAndOffsetaanmain: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(); }Voer de toepassing uit.
Gebruik veilige zoekfunctie, aantal antwoorden en de promootfilter
In dit voorbeeld worden de answer_count, promoteen safe_search parameters gebruikt om zoekresultaten te filteren op 'Muziekvideo's'. De Name en ContentUrl voor het eerste resultaat worden weergegeven.
Voeg deze code toe aan uw consoleproject:
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); } }Toevoegen
WebResultsWithCountAndOffsetaanmain: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(); }Voer de toepassing uit.
De hulpbronnen opschonen
Wanneer u klaar bent met dit project, moet u de abonnementssleutel uit de code van de toepassing verwijderen.
Volgende stappen
Met de Bing Web Search-clientbibliotheek kunt u Bing Web Search eenvoudig integreren in uw Java-toepassing. In deze quickstart leert u hoe u een aanvraag verzendt, een JSON-antwoord ontvangt en de resultaten filtert en parseert.
Wilt u de code nu zien? Voorbeelden voor de Bing Search-clientbibliotheken voor Java zijn beschikbaar op GitHub.
Vereiste voorwaarden
Hier volgen enkele dingen die u nodig hebt voordat u deze quickstart uitvoert:
- JDK 7 of 8
- Apache Maven of uw favoriete hulpprogramma voor buildautomatisering
- Een abonnementssleutel
Een Azure-resource maken
Begin met het gebruik van de Bing Webzoekopdrachten-API door een van de volgende Azure-resources te maken:
- Beschikbaar via de Azure-portal totdat u de resource verwijdert.
- Gebruik de gratis prijscategorie om de service uit te proberen en voer later een upgrade uit naar een betaalde laag voor productie.
Resource voor meerdere services
- Beschikbaar via de Azure-portal totdat u de resource verwijdert.
- Gebruik dezelfde sleutel en hetzelfde eindpunt voor uw toepassingen, in meerdere Azure AI-services.
Een project maken en uw POM-bestand instellen
Maak een nieuw Java-project met maven of uw favoriete hulpprogramma voor buildautomatisering. Als u Maven gebruikt, voegt u de volgende regels toe aan het POM-bestand (Project Object Model). Vervang alle exemplaren van mainClass met uw toepassing.
<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>
Afhankelijkheden declareren
Open uw project in uw favoriete IDE of editor en importeer deze afhankelijkheden:
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;
Als u het project met Maven hebt gemaakt, moet het pakket al worden gedeclareerd. Declareer anders het pakket nu. Voorbeeld:
package com.bingwebsearch.app
De klasse BingWebSearchSample declareren
Declareer de BingWebSearchSample klasse. Deze bevat de meeste van onze code, inclusief de main methode.
public class BingWebSearchSample {
// The code in the following sections goes here.
}
Een aanvraag maken
Met runSample de methode, die zich in de BingWebSearchSample klasse bevindt, wordt de aanvraag samengesteld. Kopieer deze code naar uw toepassing:
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...
Het verwerken van het antwoord
Vervolgens gaan we code toevoegen om het antwoord te parseren en de resultaten af te drukken. De name en url voor de eerste webpagina, afbeelding, nieuwsartikel en video worden afgedrukt wanneer ze zijn opgenomen in het antwoordobject.
/*
* 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...");
}
De hoofdmethode declareren
In deze toepassing bevat de hoofdmethode code waarmee de client wordt geïnstantieerd, subscriptionKey wordt gevalideerd, en runSample wordt aangeroepen. Zorg ervoor dat u een geldige abonnementssleutel voor uw Azure-account invoert voordat u doorgaat.
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();
}
}
Het programma uitvoeren
De laatste stap is het uitvoeren van uw programma.
mvn compile exec:java
De hulpbronnen opschonen
Wanneer u klaar bent met dit project, moet u de abonnementssleutel uit de code van het programma verwijderen.
Volgende stappen
Zie ook
Met de Bing Web Search-clientbibliotheek kunt u Bing Web Search eenvoudig integreren in uw Node.js-toepassing. In deze quickstart leert u hoe u een client instantieert, een aanvraag verzendt en het antwoord afdrukt.
Wilt u de code nu zien? Voorbeelden voor de Bing Search-clientbibliotheken voor JavaScript zijn beschikbaar op GitHub.
Vereiste voorwaarden
Hier volgen enkele dingen die u nodig hebt voordat u deze quickstart uitvoert:
- Node.js 6 of hoger
- Een abonnementssleutel
Een Azure-resource maken
Begin met het gebruik van de Bing Webzoekopdrachten-API door een van de volgende Azure-resources te maken:
- Beschikbaar via de Azure-portal totdat u de resource verwijdert.
- Gebruik de gratis prijscategorie om de service uit te proberen en voer later een upgrade uit naar een betaalde laag voor productie.
Resource voor meerdere services
- Beschikbaar via de Azure-portal totdat u de resource verwijdert.
- Gebruik dezelfde sleutel en hetzelfde eindpunt voor uw toepassingen, in meerdere Azure AI-services.
Uw ontwikkelomgeving instellen
Laten we beginnen met het instellen van de ontwikkelomgeving voor ons Node.js project.
Maak een nieuwe map voor uw project:
mkdir YOUR_PROJECTMaak een nieuw pakketbestand:
cd YOUR_PROJECT npm initNu gaan we enkele Azure-modules installeren en deze toevoegen aan het
package.jsonvolgende:npm install --save @azure/cognitiveservices-websearch npm install --save @azure/ms-rest-azure-js
Een project maken en vereiste modules declareren
Maak in dezelfde map als uw package.jsonnieuwe Node.js project met behulp van uw favoriete IDE of editor. Voorbeeld: sample.js.
Kopieer vervolgens deze code naar uw project. De modules die in de vorige sectie zijn geïnstalleerd, worden geladen.
const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials;
const WebSearchAPIClient = require('@azure/cognitiveservices-websearch');
De client instantiëren
Met deze code wordt een client geïnstitueert en de @azure/cognitiveservices-websearch module gebruikt. Zorg ervoor dat u een geldige abonnementssleutel voor uw Azure-account invoert voordat u doorgaat.
let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY');
let webSearchApiClient = new WebSearchAPIClient(credentials);
Een aanvraag indienen en de resultaten afdrukken
Gebruik de client om een zoekquery te verzenden naar Bing Webzoekopdrachten. Als het antwoord resultaten bevat voor een van de items in de properties array, wordt het result.value op de console afgedrukt.
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;
})
Het programma uitvoeren
De laatste stap is het uitvoeren van uw programma.
De hulpbronnen opschonen
Wanneer u klaar bent met dit project, moet u de abonnementssleutel uit de code van het programma verwijderen.
Volgende stappen
Zie ook
Met de Bing Web Search-clientbibliotheek kunt u Bing Web Search eenvoudig integreren in uw Python-toepassing. In deze quickstart leert u hoe u een aanvraag verzendt, een JSON-antwoord ontvangt en de resultaten filtert en parseert.
Wilt u de code nu zien? Voorbeelden voor de Bing Search-clientbibliotheken voor Python zijn beschikbaar op GitHub.
Vereiste voorwaarden
De Bing Web Search SDK is compatibel met Python 2.7 of 3.6+. We raden u aan een virtuele omgeving te gebruiken voor deze quickstart.
- Python 2.7 of 3.6+
- virtualenv voor Python 2.7
- venv voor Python 3.x
Een Azure-resource maken
Begin met het gebruik van de Bing Webzoekopdrachten-API door een van de volgende Azure-resources te maken:
- Beschikbaar via de Azure-portal totdat u de resource verwijdert.
- Gebruik de gratis prijscategorie om de service uit te proberen en voer later een upgrade uit naar een betaalde laag voor productie.
Resource voor meerdere services
- Beschikbaar via de Azure-portal totdat u de resource verwijdert.
- Gebruik dezelfde sleutel en hetzelfde eindpunt voor uw toepassingen, in meerdere Azure AI-services.
Uw virtuele omgeving maken en configureren
De instructies voor het instellen en configureren van een virtuele omgeving verschillen voor Python 2.x en Python 3.x. Volg de onderstaande stappen om uw virtuele omgeving te maken en te initialiseren.
Python 2.x
Maak een virtuele omgeving met virtualenv python 2.7:
virtualenv mytestenv
Activeer uw omgeving:
cd mytestenv
source bin/activate
Bing Web Search SDK-afhankelijkheden installeren:
python -m pip install azure-cognitiveservices-search-websearch
Python 3.x
Een virtuele omgeving maken met venv python 3.x:
python -m venv mytestenv
Activeer uw omgeving:
mytestenv\Scripts\activate.bat
Bing Web Search SDK-afhankelijkheden installeren:
cd mytestenv
python -m pip install azure-cognitiveservices-search-websearch
Een client maken en uw eerste resultaten afdrukken
Nu u uw virtuele omgeving hebt ingesteld en afhankelijkheden hebt geïnstalleerd, gaan we een client maken. De client verwerkt aanvragen naar en antwoorden van de Bing Webzoekopdrachten-API.
Als het antwoord webpagina's, afbeeldingen, nieuws of video's bevat, wordt het eerste resultaat voor elke pagina afgedrukt.
Maak een nieuw Python-project met uw favoriete IDE of editor.
Kopieer deze voorbeeldcode naar uw project.
endpointkan het onderstaande globale eindpunt zijn of het aangepaste subdomeineindpunt dat wordt weergegeven in Azure Portal voor uw resource.:# 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...")Vervang
SUBSCRIPTION_KEYmet een geldige abonnementssleutel.Vervang
YOUR_ENDPOINTdoor uw eindpunt-URL in de portal en verwijder de sectie 'bing/v7.0' van het eindpunt.Voer het programma uit. Voorbeeld:
python your_program.py.
Functies definiëren en resultaten filteren
Nu u uw eerste aanroep naar de Bing Webzoekopdrachten-API hebt gedaan, gaan we een paar functies bekijken. In de volgende secties wordt de SDK-functionaliteit gemarkeerd voor het verfijnen van query's en het filteren van resultaten. Elke functie kan worden toegevoegd aan het Python-programma dat u in de vorige sectie hebt gemaakt.
Het aantal resultaten beperken dat door Bing wordt geretourneerd
In dit voorbeeld worden de count en offset parameters gebruikt om het aantal geretourneerde resultaten te beperken met behulp van de methode van searchde SDK. De name en url voor het eerste resultaat worden afgedrukt.
Voeg deze code toe aan uw Python-project:
# 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))Voer het programma uit.
Filteren op nieuws en nieuwheid
In dit voorbeeld worden de response_filter en freshness parameters gebruikt om zoekresultaten te filteren met behulp van de methode van searchde SDK. De geretourneerde zoekresultaten zijn beperkt tot nieuwsartikelen en pagina's die Bing in de afgelopen 24 uur heeft gedetecteerd. Het name en url voor het eerste resultaat worden afgedrukt.
Voeg deze code toe aan uw Python-project:
# 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)Voer het programma uit.
Het veilige zoekfilter, aantal antwoorden en het promote filter gebruiken
In dit voorbeeld worden de answer_count, promoteen safe_search parameters gebruikt om zoekresultaten te filteren met behulp van de methode vansearch de SDK. De name en url voor het eerste resultaat worden weergegeven.
Voeg deze code toe aan uw Python-project:
# 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))Voer het programma uit.
De hulpbronnen opschonen
Wanneer u klaar bent met dit project, moet u uw abonnementssleutel verwijderen uit de code van het programma en uw virtuele omgeving deactiveren.