Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Advertência
Em 30 de outubro de 2020, as APIs de Pesquisa do Bing foram movidas dos serviços de IA do Azure para os Serviços de Pesquisa do Bing. Esta documentação é fornecida apenas para referência. Para obter documentação atualizada, consulte a documentação da API de pesquisa do Bing. Para obter instruções sobre como criar novos recursos do Azure para a pesquisa do Bing, consulte Criar um recurso de Pesquisa do Bing através do Azure Marketplace.
A biblioteca de cliente do Bing Web Search facilita a integração do Bing Web Search em seu aplicativo C#. Neste início rápido, você aprenderá como instanciar um cliente, enviar uma solicitação e imprimir a resposta.
Quer ver o código agora? Exemplos para as bibliotecas de cliente da Pesquisa do Bing para .NET estão disponíveis no GitHub.
Pré-requisitos
Aqui estão algumas coisas que você precisará antes de executar este início rápido:
Criar um recurso do Azure
Comece a usar a API de Pesquisa na Web do Bing criando um dos seguintes recursos do Azure:
- Disponível através do portal do Azure até eliminar o recurso.
- Use o nível de preço gratuito para experimentar o serviço e atualize mais tarde para um nível pago para produção.
- Disponível através do portal do Azure até eliminar o recurso.
- Use a mesma chave e ponto de extremidade para seus aplicativos, em vários serviços de IA do Azure.
Criar um projeto e instalar dependências
Sugestão
Obtenha o código mais recente como uma solução do Visual Studio do GitHub.
O primeiro passo é criar um novo projeto de console. Se precisar de ajuda para configurar um projeto de console, consulte Hello World -- Your First Program (Guia de Programação em C#). Para usar o SDK de Pesquisa na Web do Bing em seu aplicativo, você precisará instalar Microsoft.Azure.CognitiveServices.Search.WebSearch usando o Gerenciador de Pacotes NuGet.
O pacote SDK de Pesquisa na Web também instala:
- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Json
Declarar dependências
Abra seu projeto no Visual Studio ou Visual Studio Code e importe estas dependências:
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;
Criar andaimes de projeto
Quando você criou seu novo projeto de console, um namespace e uma classe para seu aplicativo devem ter sido criados. Seu programa deve se parecer com este exemplo:
namespace WebSearchSDK
{
class YOUR_PROGRAM
{
// The code in the following sections goes here.
}
}
Nas seções a seguir, criaremos nosso aplicativo de exemplo dentro dessa classe.
Construir uma solicitação
Este código constrói a consulta de pesquisa.
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);
}
}
Processar a resposta
Em seguida, vamos adicionar algum código para analisar a resposta e imprimir os resultados. O Name e Url para a primeira página da Web, a imagem, o artigo de notícia e o vídeo são impressos se estiverem presentes no objeto de resposta.
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...");
}
Declarar o método principal
Neste aplicativo, o método principal inclui código que instancia o cliente, valida o subscriptionKeye chama WebResults. Certifique-se de que introduz uma chave de subscrição válida para a sua conta do Azure antes de continuar.
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();
}
Execute o aplicativo
Vamos executar o aplicativo!
dotnet run
Definir funções e filtrar resultados
Agora que você fez sua primeira chamada para a API de Pesquisa na Web do Bing, vamos examinar algumas funções que destacam a funcionalidade do SDK para refinar consultas e filtrar resultados. Cada função pode ser adicionada ao seu aplicativo C# criado na seção anterior.
Limitar o número de resultados retornados pelo Bing
Este exemplo usa os count parâmetros e offset para limitar o número de resultados retornados para "Melhores restaurantes em Seattle". São impressos o Name e o Url para o primeiro resultado.
Adicione este código ao seu projeto 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); } }Adicionar
WebResultsWithCountAndOffsetamain: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(); }Execute o aplicativo.
Filtrar por notícias
Este exemplo usa o parâmetro response_filter para filtrar os resultados da pesquisa. Os resultados da pesquisa retornados são limitados a artigos de notícias para "Microsoft". São impressos o Name e o Url para o primeiro resultado.
Adicione este código ao seu projeto 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); } }Adicionar
WebResultsWithCountAndOffsetamain: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(); }Execute o aplicativo.
Use a pesquisa segura, a contagem de respostas e o filtro de promoção
Este exemplo usa os parâmetros answer_count, promote e safe_search para filtrar os resultados da pesquisa para "Vídeos Musicais". O Name e ContentUrl para o primeiro resultado são exibidos.
Adicione este código ao seu projeto 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); } }Adicionar
WebResultsWithCountAndOffsetamain: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(); }Execute o aplicativo.
Limpeza de recursos
Quando terminar este projeto, certifique-se de remover sua chave de assinatura do código do aplicativo.
Próximos passos
A biblioteca de cliente do Bing Web Search facilita a integração do Bing Web Search em seu aplicativo Java. Neste início rápido, você aprenderá como enviar uma solicitação, receber uma resposta JSON e filtrar e analisar os resultados.
Quer ver o código agora? Exemplos para as bibliotecas de cliente de Pesquisa do Bing para Java estão disponíveis no GitHub.
Pré-requisitos
Aqui estão algumas coisas que você precisará antes de executar este início rápido:
- JDK 7 ou 8
- Apache Maven ou sua ferramenta favorita de automação de compilação
- Uma chave de subscrição
Criar um recurso do Azure
Comece a usar a API de Pesquisa na Web do Bing criando um dos seguintes recursos do Azure:
- Disponível através do portal do Azure até eliminar o recurso.
- Use o nível de preço gratuito para experimentar o serviço e atualize mais tarde para um nível pago para produção.
- Disponível através do portal do Azure até eliminar o recurso.
- Use a mesma chave e ponto de extremidade para seus aplicativos, em vários serviços de IA do Azure.
Crie um projeto e configure seu arquivo POM
Crie um novo projeto Java usando o Maven ou sua ferramenta favorita de automação de compilação. Supondo que você esteja usando o Maven, adicione as seguintes linhas ao seu arquivo POM (Project Object Model). Substitua todas as instâncias de mainClass com a sua aplicação.
<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>
Declarar dependências
Abra seu projeto em seu IDE ou editor favorito e importe estas dependências:
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;
Se você criou o projeto com o Maven, o pacote já deve ser declarado. Caso contrário, declare o pacote agora. Por exemplo:
package com.bingwebsearch.app
Declare a classe BingWebSearchSample
Declare a BingWebSearchSample classe. Ele incluirá a maior parte do nosso código, incluindo o main método.
public class BingWebSearchSample {
// The code in the following sections goes here.
}
Construir uma solicitação
O runSample método, que vive na BingWebSearchSample classe, constrói a solicitação. Copie este código para a sua aplicação:
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...
Processar a resposta
Em seguida, vamos adicionar algum código para analisar a resposta e imprimir os resultados. Os name e url para a primeira página da Web, imagem, artigo de notícias e vídeo são impressos quando incluídos no objeto de resposta.
/*
* 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...");
}
Declarar o método principal
Neste aplicativo, o método principal inclui código que instancia o cliente, valida o subscriptionKeye chama runSample. Certifique-se de que introduz uma chave de subscrição válida para a sua conta do Azure antes de continuar.
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();
}
}
Execute o programa
O passo final é executar o seu programa!
mvn compile exec:java
Limpeza de recursos
Quando terminar este projeto, certifique-se de que remove a sua chave de subscrição do código do programa.
Próximos passos
Ver também
A biblioteca de cliente do Bing Web Search facilita a integração do Bing Web Search no seu aplicativo Node.js. Neste início rápido, você aprenderá como instanciar um cliente, enviar uma solicitação e imprimir a resposta.
Quer ver o código agora? Exemplos para as bibliotecas de cliente da Pesquisa do Bing para JavaScript estão disponíveis no GitHub.
Pré-requisitos
Aqui estão algumas coisas que você precisará antes de executar este início rápido:
- Node.js 6 ou posterior
- Uma chave de subscrição
Criar um recurso do Azure
Comece a usar a API de Pesquisa na Web do Bing criando um dos seguintes recursos do Azure:
- Disponível através do portal do Azure até eliminar o recurso.
- Use o nível de preço gratuito para experimentar o serviço e atualize mais tarde para um nível pago para produção.
- Disponível através do portal do Azure até eliminar o recurso.
- Use a mesma chave e ponto de extremidade para seus aplicativos, em vários serviços de IA do Azure.
Configurar seu ambiente de desenvolvimento
Vamos começar por configurar o ambiente de desenvolvimento para o nosso Node.js projeto.
Crie um novo diretório para o seu projeto:
mkdir YOUR_PROJECTCrie um novo arquivo de pacote:
cd YOUR_PROJECT npm initAgora, vamos instalar alguns módulos do Azure e adicioná-los ao
package.json:npm install --save @azure/cognitiveservices-websearch npm install --save @azure/ms-rest-azure-js
Criar um projeto e declarar os módulos necessários
No mesmo diretório que o package.json, crie um novo projeto Node.js usando o seu IDE ou editor favorito. Por exemplo: sample.js.
Em seguida, copie esse código para seu projeto. Ele carrega os módulos instalados na seção anterior.
const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials;
const WebSearchAPIClient = require('@azure/cognitiveservices-websearch');
Instanciar o cliente
Este código instancia um cliente e utiliza o módulo @azure/cognitiveservices-websearch. Certifique-se de que introduz uma chave de subscrição válida para a sua conta do Azure antes de continuar.
let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY');
let webSearchApiClient = new WebSearchAPIClient(credentials);
Faça um pedido e imprima os resultados
Use o cliente para enviar uma consulta de pesquisa para o Bing Web Search. Se a resposta incluir resultados para qualquer um dos itens no array properties, o result.value será impresso no 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;
})
Execute o programa
O passo final é executar o seu programa!
Limpeza de recursos
Quando terminar este projeto, certifique-se de que remove a sua chave de subscrição do código do programa.
Próximos passos
Ver também
A biblioteca de cliente do Bing Web Search facilita a integração do Bing Web Search em seu aplicativo Python. Neste início rápido, você aprenderá como enviar uma solicitação, receber uma resposta JSON e filtrar e analisar os resultados.
Quer ver o código agora? Exemplos para as bibliotecas de cliente de Pesquisa do Bing para Python estão disponíveis no GitHub.
Pré-requisitos
O SDK de Pesquisa na Web do Bing é compatível com Python 2.7 ou 3.6+. Recomendamos o uso de um ambiente virtual para este início rápido.
- Python 2.7 ou 3.6+
- virtualenv para Python 2.7
- venv para Python 3.x
Criar um recurso do Azure
Comece a usar a API de Pesquisa na Web do Bing criando um dos seguintes recursos do Azure:
- Disponível através do portal do Azure até eliminar o recurso.
- Use o nível de preço gratuito para experimentar o serviço e atualize mais tarde para um nível pago para produção.
- Disponível através do portal do Azure até eliminar o recurso.
- Use a mesma chave e ponto de extremidade para seus aplicativos, em vários serviços de IA do Azure.
Crie e configure seu ambiente virtual
As instruções para instalar e configurar um ambiente virtual são diferentes para Python 2.x e Python 3.x. Siga as etapas abaixo para criar e inicializar seu ambiente virtual.
Python 2.x
Crie um ambiente virtual com virtualenv o Python 2.7:
virtualenv mytestenv
Ative seu ambiente:
cd mytestenv
source bin/activate
Instale as dependências do SDK da Pesquisa na Web do Bing:
python -m pip install azure-cognitiveservices-search-websearch
Python 3.x
Crie um ambiente virtual com venv para Python 3.x:
python -m venv mytestenv
Ative seu ambiente:
mytestenv\Scripts\activate.bat
Instale as dependências do SDK da Pesquisa na Web do Bing:
cd mytestenv
python -m pip install azure-cognitiveservices-search-websearch
Crie um cliente e imprima os seus primeiros resultados
Agora que você configurou seu ambiente virtual e instalou dependências, vamos criar um cliente. O cliente manipulará solicitações e respostas da API de Pesquisa na Web do Bing.
Se a resposta contiver páginas da Web, imagens, notícias ou vídeos, o primeiro resultado de cada um será impresso.
Crie um novo projeto Python usando seu IDE ou editor favorito.
Copie este código de exemplo para o seu projeto.
endpointpode ser o ponto de extremidade global abaixo ou o ponto de extremidade de subdomínio personalizado exibido no portal do Azure para seu recurso.:# 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...")Substitua
SUBSCRIPTION_KEYpor uma chave de assinatura válida.Substitua
YOUR_ENDPOINTpelo URL do endpoint no portal e remova a seção "bing/v7.0" do endpoint.Execute o programa. Por exemplo:
python your_program.py.
Definir funções e filtrar resultados
Agora que você fez sua primeira chamada para a API de Pesquisa na Web do Bing, vamos examinar algumas funções. As seções a seguir destacam a funcionalidade do SDK para refinar consultas e filtrar resultados. Cada função pode ser adicionada ao programa Python que você criou na seção anterior.
Limitar o número de resultados retornados pelo Bing
Este exemplo usa os count parâmetros e offset para limitar o número de resultados retornados usando o método do searchSDK. São impressos o name e o url para o primeiro resultado.
Adicione este código ao seu projeto 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://v4.hkg1.meaqua.org/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))Execute o programa.
Filtrar por notícias e frescura
Este exemplo usa os response_filter parâmetros e freshness para filtrar os resultados da pesquisa usando o método do searchSDK. Os resultados da pesquisa devolvidos estão limitados a artigos de notícias e páginas que o Bing descobriu nas últimas 24 horas. São impressos o name e o url para o primeiro resultado.
Adicione este código ao seu projeto 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://v4.hkg1.meaqua.org/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)Execute o programa.
Use a pesquisa segura, a contagem de respostas e o filtro de promoção
Este exemplo usa os parâmetros answer_count, promote e safe_search para filtrar os resultados da pesquisa utilizando o método search do SDK. O name e url para o primeiro resultado são exibidos.
Adicione este código ao seu projeto 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://v4.hkg1.meaqua.org/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))Execute o programa.
Limpeza de recursos
Quando terminar este projeto, certifique-se de remover sua chave de assinatura do código do programa e desativar seu ambiente virtual.