Sdílet prostřednictvím


Rychlý start: Použití klientské knihovny Bingu pro vyhledávání na webu

Varování

30. října 2020 se rozhraní API Bingu pro vyhledávání přesunula ze služeb Azure AI do služby Bing Search 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í Bingu najdete v tématu Vytvoření prostředku Vyhledávání Bingu prostřednictvím Azure Marketplace.

Klientská knihovna Bingu pro vyhledávání na webu usnadňuje integraci Vyhledávání na webu Bingu do vaší aplikace v jazyce C#. V tomto rychlém startu se dozvíte, jak vytvořit instanci klienta, odeslat požadavek a vytisknout odpověď.

Chcete kód vidět právě teď? Ukázky pro klientské knihovny Bing Search pro .NET jsou k dispozici na GitHubu.

Požadavky

Tady je několik věcí, které budete potřebovat před spuštěním tohoto rychlého startu:

Vytvoření prostředku Azure

Začněte používat rozhraní API Bingu pro vyhledávání na webu vytvořením jednoho z následujících prostředků Azure:

zdroj Bing vyhledávání v7

  • K dispozici prostřednictvím webu Azure Portal, dokud prostředek neodstraníte.
  • K vyzkoušení služby použijte cenovou úroveň Free a upgradujte ji později na placenou úroveň pro produkční prostředí.

Prostředek s více službami

  • K dispozici prostřednictvím webu Azure Portal, dokud prostředek neodstraníte.
  • Použijte stejný klíč a koncový bod pro vaše aplikace napříč několika službami Azure AI.

Vytvoření projektu a instalace závislostí

Návod

Získejte nejnovější kód jako řešení sady Visual Studio z GitHubu .

Prvním krokem je vytvoření nového projektu konzoly. Pokud potřebujete pomoc s nastavením projektu konzoly, přečtěte si Hello World – Váš první program (Průvodce programováním v C#). Pokud chcete ve své aplikaci použít sadu SDK Bingu pro vyhledávání na webu, budete muset nainstalovat Microsoft.Azure.CognitiveServices.Search.WebSearch pomocí Správce balíčků NuGet.

Balíček SDK pro webové vyhledávání nainstaluje také:

  • Microsoft.Rest.ClientRuntime
  • Microsoft.Rest.ClientRuntime.Azure
  • Newtonsoft.Json

Deklarace závislostí

Otevřete projekt v sadě Visual Studio nebo Visual Studio Code a naimportujte tyto závislosti:

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;

Vytvořit základní strukturu projektu

Při vytváření nového projektu konzoly měl být vytvořen obor názvů a třída vaší aplikace. Váš program by měl vypadat jako v tomto příkladu:

namespace WebSearchSDK
{
    class YOUR_PROGRAM
    {

        // The code in the following sections goes here.

    }
}

V následujících částech sestavíme ukázkovou aplikaci v rámci této třídy.

Vytvoření požadavku

Tento kód vytvoří vyhledávací dotaz.

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);
    }
}

Zpracování odpovědi

V dalším kroku přidáme kód pro parsování odpovědi a vytiskneme výsledky. Name a Url pro první webovou stránku, obrázek, článek o novinkách a video se vytisknou, pokud jsou přítomné v objektu odpovědi.

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...");
}

Deklarace hlavní metody

V této aplikaci hlavní metoda zahrnuje kód, který vytvoří instanci klienta, ověří subscriptionKeya zavolá WebResults. Než budete pokračovat, ujistěte se, že pro svůj účet Azure zadáte platný klíč předplatného.

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();
}

Spuštění aplikace

Pojďme aplikaci spustit!

dotnet run

Definování funkcí a filtrování výsledků

Teď, když jste poprvé použili rozhraní API pro vyhledávání na webu od Bingu, se podíváme na několik funkcí, které demonstrují schopnosti sady SDK pro zdokonalení dotazů a filtrování výsledků. Každou funkci je možné přidat do aplikace jazyka C# vytvořené v předchozí části.

Omezení počtu výsledků vrácených Bingem

Tato ukázka používá parametry count a offset k omezení počtu výsledků vrácených pro "Nejlepší restaurace v Seattlu". Jsou vytištěny Name a Url prvního výsledku.

  1. Přidejte tento kód do projektu konzoly:

    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);
        }
    }
    
  2. Přidání WebResultsWithCountAndOffset do 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();
    }
    
  3. Spusťte aplikaci.

Filtrování zpráv

Tato ukázka používá k filtrování výsledků hledání parametr response_filter. Vrácené výsledky hledání jsou omezené na články zpráv pro "Microsoft". Tisknou se hodnoty Name a Url pro první výsledek.

  1. Přidejte tento kód do projektu konzoly:

    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);
        }
    }
    
  2. Přidání WebResultsWithCountAndOffset do 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();
    }
    
  3. Spusťte aplikaci.

Použijte bezpečné vyhledávání, počet odpovědí a propagační filtr

Tato ukázka používá parametry answer_count, promotea safe_search k filtrování výsledků hledání pro "Hudební videa". Zobrazí se Name a ContentUrl u prvního výsledku.

  1. Přidejte tento kód do projektu konzoly:

    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);
        }
    }
    
  2. Přidání WebResultsWithCountAndOffset do 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();
    }
    
  3. Spusťte aplikaci.

Uklidit zdroje

Až budete s tímto projektem hotovi, nezapomeňte odebrat klíč předplatného z kódu aplikace.

Další kroky

Klientská knihovna Bingu pro vyhledávání na webu usnadňuje integraci Vyhledávání na webu Bingu do vaší aplikace v Javě. V tomto rychlém startu se dozvíte, jak odeslat požadavek, přijmout odpověď JSON a filtrovat a analyzovat výsledky.

Chcete kód vidět právě teď? Ukázky pro klientské knihovny Bingu pro vyhledávání v Javě jsou k dispozici na GitHubu.

Požadavky

Tady je několik věcí, které budete potřebovat před spuštěním tohoto rychlého startu:

Vytvoření prostředku Azure

Začněte používat rozhraní API Bingu pro vyhledávání na webu vytvořením jednoho z následujících prostředků Azure:

zdroj Bing vyhledávání v7

  • K dispozici prostřednictvím webu Azure Portal, dokud prostředek neodstraníte.
  • K vyzkoušení služby použijte cenovou úroveň Free a upgradujte ji později na placenou úroveň pro produkční prostředí.

Prostředek s více službami

  • K dispozici prostřednictvím webu Azure Portal, dokud prostředek neodstraníte.
  • Použijte stejný klíč a koncový bod pro vaše aplikace napříč několika službami Azure AI.

Vytvoření projektu a nastavení souboru POM

Vytvořte nový projekt Java pomocí Mavenu nebo oblíbeného nástroje pro automatizaci sestavení. Za předpokladu, že používáte Maven, přidejte do souboru Project Object Model (POM) následující řádky. Nahraďte všechny instance mainClass vaší aplikací.

<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>

Deklarace závislostí

Otevřete projekt ve svém oblíbeném integrovaném vývojovém prostředí nebo editoru a naimportujte tyto závislosti:

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;

Pokud jste projekt vytvořili pomocí Mavenu, měl by už být balíček deklarován. V opačném případě deklarujte balíček. Například:

package com.bingwebsearch.app

Deklarace třídy BingWebSearchSample

Deklarujte třídu BingWebSearchSample. Bude obsahovat většinu kódu včetně metody main.

public class BingWebSearchSample {

// The code in the following sections goes here.

}

Vytvoření požadavku

Metoda runSample, která se nachází ve třídě BingWebSearchSample, vytvoří požadavek. Zkopírujte tento kód do aplikace:

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...

Zpracování odpovědi

V dalším kroku přidáme kód pro parsování odpovědi a vytiskneme výsledky. Při zahrnutí do objektu odpovědi se vytisknou name a url pro první webovou stránku, obrázek, článek o novinkách a video.

/*
* 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...");
}

Deklarace hlavní metody

V této aplikaci hlavní metoda obsahuje kód, který instanciuje klienta, ověří subscriptionKeya vyvolá runSample. Než budete pokračovat, ujistěte se, že pro svůj účet Azure zadáte platný klíč předplatného.

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();
    }
}

Spuštění programu

Posledním krokem je spuštění programu.

mvn compile exec:java

Uklidit zdroje

Až s tímto projektem skončíte, nezapomeňte odebrat klíč předplatného z kódu programu.

Další kroky

Viz také

Klientská knihovna Bingu pro vyhledávání na webu usnadňuje integraci Vyhledávání na webu Bingu do vaší Node.js aplikace. V tomto rychlém startu se dozvíte, jak vytvořit instanci klienta, odeslat požadavek a vytisknout odpověď.

Chcete kód vidět právě teď? Ukázky pro klientské knihovny Vyhledávání Bingu pro javascriptové jsou k dispozici na GitHubu.

Požadavky

Tady je několik věcí, které budete potřebovat před spuštěním tohoto rychlého startu:

  • Node.js 6 nebo novější
  • Klíč předplatného

Vytvoření prostředku Azure

Začněte používat rozhraní API Bingu pro vyhledávání na webu vytvořením jednoho z následujících prostředků Azure:

zdroj Bing vyhledávání v7

  • K dispozici prostřednictvím webu Azure Portal, dokud prostředek neodstraníte.
  • K vyzkoušení služby použijte cenovou úroveň Free a upgradujte ji později na placenou úroveň pro produkční prostředí.

Prostředek s více službami

  • K dispozici prostřednictvím webu Azure Portal, dokud prostředek neodstraníte.
  • Použijte stejný klíč a koncový bod pro vaše aplikace napříč několika službami Azure AI.

Nastavení vývojového prostředí

Začněme nastavením vývojového prostředí pro náš projekt Node.js.

  1. Vytvořte pro svůj projekt nový adresář:

    mkdir YOUR_PROJECT
    
  2. Vytvořte nový soubor balíčku:

    cd YOUR_PROJECT
    npm init
    
  3. Teď nainstalujeme některé moduly Azure a přidáme je do package.json:

    npm install --save @azure/cognitiveservices-websearch
    npm install --save @azure/ms-rest-azure-js
    

Vytvoření projektu a deklarace požadovaných modulů

Ve stejném adresáři jako package.jsonvytvořte nový projekt Node.js pomocí svého oblíbeného integrovaného vývojového prostředí nebo editoru. Například: sample.js.

Dále zkopírujte tento kód do projektu. Načte moduly nainstalované v předchozí části.

const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials;
const WebSearchAPIClient = require('@azure/cognitiveservices-websearch');

Vytvoření instance klienta

Tento kód vytvoří instanci klienta a použije modul @azure/cognitiveservices-websearch. Než budete pokračovat, ujistěte se, že pro svůj účet Azure zadáte platný klíč předplatného.

let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY');
let webSearchApiClient = new WebSearchAPIClient(credentials);

Vytvoření požadavku a tisk výsledků

Pomocí klienta odešlete vyhledávací dotaz do vyhledávání na webu Bingu. Pokud odpověď obsahuje výsledky pro všechny položky v poli properties, result.value se vytiskne do konzoly.

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;
})

Spuštění programu

Posledním krokem je spuštění programu.

Uklidit zdroje

Až s tímto projektem skončíte, nezapomeňte odebrat klíč předplatného z kódu programu.

Další kroky

Viz také

Klientská knihovna Bingu pro vyhledávání na webu usnadňuje integraci Vyhledávání na webu Bingu do aplikace v Pythonu. V tomto rychlém startu se dozvíte, jak odeslat požadavek, přijmout odpověď JSON a filtrovat a analyzovat výsledky.

Chcete kód vidět právě teď? Ukázky klientských knihoven Bingu pro vyhledávání v Pythonu jsou k dispozici na GitHubu.

Požadavky

Sada SDK Bingu pro vyhledávání na webu je kompatibilní s Pythonem 2.7 nebo 3.6 nebo novějším. Pro účely tohoto rychlého startu doporučujeme použít virtuální prostředí.

  • Python 2.7 nebo 3.6 nebo novější
  • virtualenv pro Python 2.7
  • venv pro Python 3.x

Vytvoření prostředku Azure

Začněte používat rozhraní API Bingu pro vyhledávání na webu vytvořením jednoho z následujících prostředků Azure:

zdroj Bing vyhledávání v7

  • K dispozici prostřednictvím webu Azure Portal, dokud prostředek neodstraníte.
  • K vyzkoušení služby použijte cenovou úroveň Free a upgradujte ji později na placenou úroveň pro produkční prostředí.

Prostředek s více službami

  • K dispozici prostřednictvím webu Azure Portal, dokud prostředek neodstraníte.
  • Použijte stejný klíč a koncový bod pro vaše aplikace napříč několika službami Azure AI.

Vytvoření a konfigurace virtuálního prostředí

Pokyny k nastavení a konfiguraci virtuálního prostředí se liší pro Python 2.x a Python 3.x. Pokud chcete vytvořit a inicializovat virtuální prostředí, postupujte podle následujících kroků.

Python 2.x

Vytvoření virtuálního prostředí s virtualenv pro Python 2.7:

virtualenv mytestenv

Aktivace prostředí:

cd mytestenv
source bin/activate

Nainstalujte závislosti sady SDK Bingu pro vyhledávání na webu:

python -m pip install azure-cognitiveservices-search-websearch

Python 3.x

Vytvoření virtuálního prostředí s venv pro Python 3.x:

python -m venv mytestenv

Aktivace prostředí:

mytestenv\Scripts\activate.bat

Nainstalujte závislosti sady SDK Bingu pro vyhledávání na webu:

cd mytestenv
python -m pip install azure-cognitiveservices-search-websearch

Vytvoření klienta a tisk prvních výsledků

Teď, když jste nastavili virtuální prostředí a nainstalovali závislosti, vytvoříme klienta. Klient bude zpracovávat požadavky a odpovědi rozhraní API Bing Web Search.

Pokud odpověď obsahuje webové stránky, obrázky, zprávy nebo videa, vytiskne se první výsledek každého z nich.

  1. Vytvořte nový projekt Pythonu pomocí svého oblíbeného integrovaného vývojového prostředí nebo editoru.

  2. Zkopírujte tento ukázkový kód do projektu. endpoint může být globálním koncovým bodem níže nebo vlastním subdoménovým koncovým bodem zobrazeným v Azure portálu pro váš prostředek.

    # 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...")
    
  3. Nahraďte SUBSCRIPTION_KEY platným klíčem předplatného.

  4. Nahraďte YOUR_ENDPOINT adresou URL koncového bodu na portálu a odeberte z koncového bodu část "bing/v7.0".

  5. Spusťte program. Například: python your_program.py.

Definování funkcí a filtrování výsledků

Teď, když jste provedli první volání rozhraní API Bingu pro vyhledávání na webu, se podíváme na několik funkcí. Následující části zvýrazňují funkce sady SDK pro upřesnění dotazů a filtrování výsledků. Každou funkci můžete přidat do programu Pythonu, který jste vytvořili v předchozí části.

Omezení počtu výsledků vrácených Bingem

Tato ukázka používá parametry count a offset k omezení počtu vrácených výsledků pomocí metody sady SDKsearch . Vytiskne se name a url prvního výsledku.

  1. Přidejte tento kód do projektu Pythonu:

     # 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))
    
  2. Spusťte program.

Filtrování zpráv a aktuálnosti

Tato ukázka používá parametry response_filter a freshness k filtrování výsledků hledání pomocí metody search sady SDK. Vrácené výsledky hledání jsou omezené na články a stránky zpráv, které Bing objevil během posledních 24 hodin. Vytiskne se name a url prvního výsledku.

  1. Přidejte tento kód do projektu Pythonu:

    # 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)
    
  2. Spusťte program.

Použijte bezpečné vyhledávání, počet odpovědí a propagační filtr.

Tato ukázka používá parametry answer_count, promotea safe_search k filtrování výsledků hledání pomocí metody search sady SDK. Hodnoty name a url prvního výsledku jsou zobrazeny.

  1. Přidejte tento kód do projektu Pythonu:

    # 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))
    
  2. Spusťte program.

Uklidit zdroje

Až s tímto projektem skončíte, nezapomeňte odebrat klíč předplatného z kódu programu a deaktivovat virtuální prostředí.

Další kroky

Viz také

  • Referenční příručka pro Azure Python SDK