Procurar notícias com a API de Pesquisa de Notícias do Bing
Aviso
A 30 de outubro de 2020, as APIs de Pesquisa do Bing passaram dos serviços de IA do Azure para os Serviços Pesquisa do Bing. Esta documentação é fornecida apenas para referência. Para obter documentação atualizada, veja 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, veja Criar um recurso de Pesquisa do Bing através do Azure Marketplace.
A API de Pesquisa de Imagens do Bing facilita a integração das capacidades de pesquisa de notícias cognitivas do Bing nas suas aplicações.
Embora a API de Pesquisa de Notícias do Bing encontre e devolva principalmente artigos de notícias relevantes, fornece várias funcionalidades para obtenção de notícias inteligente e focada na Web.
Sugerir e utilizar termos de pesquisa
Se disponibilizar uma caixa de pesquisa na qual o utilizador introduz o seu termo de pesquisa, utilize a API de Sugestão Automática do Bing para melhorar a experiência. A API devolve cadeias de consulta sugerida com base em termos de pesquisa parcial à medida que o utilizador escreve.
Depois de o utilizador introduzir o seu termo de pesquisa, o URL codifica-o antes de definir o parâmetro de consulta q. Por exemplo, se o utilizador introduzir sailing dinghies, defina q
como sailing+dinghies
ou sailing%20dinghies
.
Obter notícias gerais
Para obter artigos gerais relacionados com o termo de pesquisa do utilizador a partir da Web, envie o seguinte pedido GET:
GET https://api.cognitive.microsoft.com/bing/v7.0/news/search?q=sailing+dinghies&mkt=en-us HTTP/1.1
Ocp-Apim-Subscription-Key: 123456789ABCDE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 822)
X-Search-ClientIP: 999.999.999.999
X-Search-Location: lat:47.60357;long:-122.3295;re:100
X-MSEdge-ClientID: <blobFromPriorResponseGoesHere>
Host: api.cognitive.microsoft.com
Se for a primeira vez que está a chamar qualquer uma das APIs do Bing, não inclua o cabeçalho de ID de cliente. Inclua apenas o ID de cliente se tiver chamado anteriormente uma API do Bing e o Bing tiver devolvido um ID de cliente para o utilizador e a combinação de dispositivo.
Para obter notícias de um domínio específico, utilize o operador de consulta site:.
GET https://api.cognitive.microsoft.com/bing/v7.0/news/search?q=sailing+dinghies+site:contososailing.com&mkt=en-us HTTP/1.1
O exemplo JSON seguinte mostra a resposta à consulta anterior. Como parte dos requisitos de Utilização e apresentação das APIs de pesquisa do Bing, tem de apresentar cada artigo de notícias pela ordem fornecida na resposta. Se o artigo tiver artigos agrupados, deve indicar que existem artigos relacionados e apresentá-los mediante pedido.
{
"_type" : "News",
"readLink" : "https:\/\/api.cognitive.microsoft.com\/bing\/v5\/news\/search?q=sailing+dinghies",
"totalEstimatedMatches" : 88400,
"value" : [{
"name" : "Sailing Vies for Four Trophies",
"url" : "http:\/\/www.bing.com\/cr?IG=CCE2F06CA750455891FE99A72...",
"image" : {
"thumbnail" : {
"contentUrl" : "https:\/\/www.bing.com\/th?id=ON.9C23AA5...",
"width" : 650,
"height" : 341
}
},
"description" : "College Rankings, presented by Zim...",
"provider" : [{
"_type" : "Organization",
"name" : "contoso.com"
}],
"datePublished" : "2017-04-14T15:28:00"
},
...
{
"name" : "Fabrikam Sailing Club to host Mirror Dinghy...",
"url" : "http:\/\/www.bing.com\/cr?IG=CCE2F06CA750455891F...",
"image" : {
"thumbnail" : {
"contentUrl" : "https:\/\/www.bing.com\/th?id=ON.36...",
"width" : 448,
"height" : 300
}
},
"description" : "The sailing club that trained Olympian Ben...",
"provider" : [{
"_type" : "Organization",
"name" : "Contoso"
}],
"datePublished" : "2017-04-04T11:02:00",
"category" : "Sports"
}]
}
A resposta news lista os artigos que o Bing considera relevantes para a consulta. O campo totalEstimatedMatches
contém uma estimativa do número de artigos disponíveis para visualização. Para obter informações sobre a paginação nos artigos, veja Paginação em Notícias.
Cada artigo na lista inclui o nome, a descrição e o URL do artigo no site do anfitrião. Se o artigo contiver uma imagem, o objeto inclui uma miniatura da imagem. Utilize name
e url
para criar uma hiperligação que direcione o utilizador para o artigo no site do anfitrião. Se o artigo incluir uma imagem, torne também a imagem clicável com url
. Certifique-se de que utiliza provider
para atribuir o artigo.
Se o Bing conseguir determinar a categoria do artigo, este incluirá o campo category
.
Obter as principais novidades de hoje
Para obter os principais artigos de notícias de hoje, pode enviar o mesmo pedido de notícias geral que antes, deixando o q
parâmetro desmarcado.
GET https://api.cognitive.microsoft.com/bing/v7.0/news/search?q=&mkt=en-us HTTP/1.1
Ocp-Apim-Subscription-Key: 123456789ABCDE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 822)
X-Search-ClientIP: 999.999.999.999
X-Search-Location: lat:47.60357;long:-122.3295;re:100
X-MSEdge-ClientID: <blobFromPriorResponseGoesHere>
Host: api.cognitive.microsoft.com
A resposta para obter as principais notícias é quase a mesma para obter notícias gerais. No entanto, a resposta news
não inclui o campo totalEstimatedMatches
porque existe um número definido de resultados. O número de artigos principais pode variar consoante o ciclo de notícias. Certifique-se de que utiliza o provider
campo para atribuir o artigo.
Obter notícias por categoria
Para obter artigos por categoria, como os principais artigos de desporto ou entretenimento, envie o seguinte pedido GET ao Bing:
GET https://api.cognitive.microsoft.com/bing/v7.0/news?category=sports&mkt=en-us HTTP/1.1
Ocp-Apim-Subscription-Key: 123456789ABCDE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 822)
X-Search-ClientIP: 999.999.999.999
X-Search-Location: lat:47.60357;long:-122.3295;re:100
X-MSEdge-ClientID: <blobFromPriorResponseGoesHere>
Host: api.cognitive.microsoft.com
Utilize o parâmetro de consulta category para especificar a categoria de artigos a obter. Para obter uma lista de possíveis categorias de notícias que pode especificar, veja Categorias de Notícias por Mercado.
A resposta para obter notícias por categoria é quase a mesma que para obter notícias gerais. No entanto, os artigos são todos da categoria especificada.
Obter notícias de manchete
Para pedir títulos de notícias e obter artigos de todas as categorias, envie o seguinte pedido ao Bing:
GET https://api.cognitive.microsoft.com/bing/v7.0/news?mkt=en-us HTTP/1.1
Ocp-Apim-Subscription-Key: 123456789ABCDE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 822)
X-MSEdge-ClientIP: 999.999.999.999
X-Search-Location: lat:47.60357;long:-122.3295;re:100
X-MSEdge-ClientID: <blobFromPriorResponseGoesHere>
Host: api.cognitive.microsoft.com
Não inclua o parâmetro de consulta category.
A resposta para obter títulos de notícias é quase a mesma que para obter as principais notícias do dia. Se o artigo for um título, o campo headline
será definido como true.
Por predefinição, a resposta inclui até 12 títulos de artigos. Para alterar o número de títulos de artigos a devolver, especifique o parâmetro de consulta headlineCount. A resposta também inclui até quatro artigos sem título por categoria de notícias.
A resposta contabiliza os clusters como um artigo. Uma vez que um cluster pode ter vários artigos, a resposta pode incluir mais de 12 títulos de artigos e mais de quatro artigos sem título por categoria.
Obter notícias populares
Para obter os tópicos populares nas redes sociais, envie o seguinte pedido GET ao Bing:
GET https://api.cognitive.microsoft.com/bing/v7.0/news/trendingtopics?mkt=en-us HTTP/1.1
Ocp-Apim-Subscription-Key: 123456789ABCDE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 822)
X-Search-ClientIP: 999.999.999.999
X-Search-Location: lat:47.60357;long:-122.3295;re:100
X-MSEdge-ClientID: <blobFromPriorResponseGoesHere>
X-MSAPI-UserState: <blobFromPriorResponseGoesHere>
Host: api.cognitive.microsoft.com
Nota
Tópicos Populares está disponível apenas nos mercados en-US e zh-CN.
O seguinte JSON é a resposta ao pedido anterior. Cada artigo popular inclui uma imagem relacionada, um sinalizador de notícia de última hora e um URL para os resultados da pesquisa do Bing para o artigo. Utilize o URL no campo webSearchUrl
para direcionar o utilizador para a página de resultados da pesquisa do Bing. Em alternativa, utilize o texto da consulta para chamar a API de Pesquisa na Web para mostrar os resultados.
{
"_type" : "TrendingTopics",
"value" : [{
"name" : "Canada pot measure",
"image" : {
"url" : "https:\/\/www.bing.com\/th?id=OPN.RTNews_hHD...",
"provider" : [{
"_type" : "Organization",
"name" : "Contoso Images"
}]
},
"webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=070292D8CEDD...",
"isBreakingNews" : false,
"query" : {
"text" : "Canada marijuana"
}
},
{
"name" : "Down on Vegas move",
"image" : {
"url" : "https:\/\/www.bing.com\/th?id=OPN.RTNews_Bfbmg8h...",
"provider" : [{
"_type" : "Organization",
"name" : "Contoso"
}]
},
"webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=070292D8CEDD...",
"isBreakingNews" : false,
"query" : {
"text" : "Marcus Appel Las Vegas"
}
},
...
]
}
Obter notícias relacionadas
Se existirem outros artigos relacionados com uma notícia, esta pode incluir o campo clusteredArticles. Segue-se um artigo com artigos em cluster.
{
"name" : "Playoffs 2017: Betting lines, point spreads...",
"url" : "http:\/\/www.bing.com\/cr?IG=4B7056CEC271408997D115...",
"image" : {
"thumbnail" : {
"contentUrl" : "https:\/\/www.bing.com\/th?id=ON.D7B1...",
"width" : 700,
"height" : 393
}
},
"description" : "April 14, 2017 3:37pm EDT April 14, 2017 3:34pm...",
"provider" : [{
"_type" : "Organization",
"name" : "Contoso"
}],
"datePublished" : "2017-04-14T19:43:00",
"category" : "Sports",
"clusteredArticles" : [{
"name" : "Playoffs 2017: Betting odds, favorites to win...",
"url" : "http:\/\/www.bing.com\/cr?IG=4B7056CEC271408997D1159E...",
"description" : "April 14, 2017 3:30pm EDT April 14, 2017 3:27pm...",
"provider" : [{
"_type" : "Organization",
"name" : "Contoso"
}],
"datePublished" : "2017-04-14T19:37:00",
"category" : "Sports"
}]
},
Limitar pedidos
O serviço e o seu tipo de subscrição determinam o número de consultas por segundo (QPS) que pode fazer. Certifique-se de que a sua aplicação inclui a lógica necessária para se manter na sua quota. Se o limite de QPS for atingido ou excedido, o pedido falha e é devolvido um código de estado HTTP 429. A resposta inclui o cabeçalho Retry-After
, que indica o tempo que tem de esperar antes de poder enviar outro pedido.
Denial of service versus Limitação
O serviço diferencia entre um ataque denial of service (DoS) e uma violação de QPS. Se o serviço suspeitar de um ataque DoS, o pedido é realizado com êxito (o código de estado HTTP é 200 OK). No entanto, o corpo da resposta está vazio.