Hızlı Başlangıç: Bing Haber Arama istemci kitaplığını kullanma
Uyarı
30 Ekim 2020'de Bing Arama API'leri Azure yapay zeka hizmetlerinden Bing Arama Hizmetlerine taşındı. Bu belgeler yalnızca başvuru için sağlanır. Güncelleştirilmiş belgeler için Bing arama API'sinin belgelerine bakın. Bing araması için yeni Azure kaynakları oluşturma yönergeleri için bkz. Azure Market aracılığıyla Bing Arama kaynağı oluşturma.
C# için Bing Haber Arama istemci kitaplığıyla haber aramaya başlamak için bu hızlı başlangıcı kullanın. Bing Haber Arama,çoğu programlama diliyle uyumlu bir REST API'ye sahip olsa da, istemci kitaplığı hizmeti uygulamalarınızla tümleştirmek için kolay bir yol sağlar. Bu örneğin kaynak kodu GitHub'da bulunabilir.
Önkoşullar
Visual Studio 2017 veya sonraki sürümleri.
NuGet paketi olarak kullanılabilen Json.NET çerçevesi.
Linux/MacOS kullanıyorsanız bu uygulama, Mono kullanılarak çalıştırılabilir.
Bing Haber Arama SDK'sı NuGet paketi. Bu paketin yüklenmesi aşağıdakileri de yükler:
- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Json
Bing Haber Arama istemci kitaplığını kullanarak bir konsol uygulaması ayarlamak için Manage NuGet Packages
Visual Studio'daki Çözüm Gezgini seçeneğine göz atın.
Microsoft.Azure.CognitiveServices.Search.NewsSearch
paketini ekleyin.
Azure kaynağı oluşturma
Aşağıdaki Azure kaynaklarından birini oluşturarak Bing Haber Arama API'sini kullanmaya başlayın:
- Kaynağı silene kadar Azure portal aracılığıyla kullanılabilir.
- Hizmeti denemek için ücretsiz fiyatlandırma katmanını kullanın ve daha sonra üretim için ücretli bir katmana yükseltin.
- Kaynağı silene kadar Azure portal aracılığıyla kullanılabilir.
- Birden çok Azure AI hizmeti genelinde uygulamalarınız için aynı anahtarı ve uç noktayı kullanın.
Proje oluşturma ve başlatma
Visual Studio'da yeni bir C# konsol çözümü oluşturun. Ardından aşağıdakileri ana kod dosyasına ekleyin.
using System; using System.Linq; using Microsoft.Azure.CognitiveServices.Search.NewsSearch;
API anahtarınız için bir değişken, bir arama terimi oluşturun ve ardından haber arama istemcisinin örneğini onunla oluşturun.
var key = "YOUR-ACCESS-KEY"; var searchTerm = "Quantum Computing"; var client = new NewsSearchClient(new ApiKeyServiceClientCredentials(key));
İstek gönderme ve sonucu ayrıştırma
Bing Haber Arama hizmeti bir arama isteği göndermek için istemciyi kullanın:
var newsResults = client.News.SearchAsync(query: searchTerm, market: "en-us", count: 10).Result;
Herhangi bir sonuç döndürüldüyse, bunları ayrıştırma:
if (newsResults.Value.Count > 0) { var firstNewsResult = newsResults.Value[0]; Console.WriteLine($"TotalEstimatedMatches value: {newsResults.TotalEstimatedMatches}"); Console.WriteLine($"News result count: {newsResults.Value.Count}"); Console.WriteLine($"First news name: {firstNewsResult.Name}"); Console.WriteLine($"First news url: {firstNewsResult.Url}"); Console.WriteLine($"First news description: {firstNewsResult.Description}"); Console.WriteLine($"First news published time: {firstNewsResult.DatePublished}"); Console.WriteLine($"First news provider: {firstNewsResult.Provider[0].Name}"); } else { Console.WriteLine("Couldn't find news results!"); } Console.WriteLine("Enter any key to exit..."); Console.ReadKey();
Sonraki adımlar
Java için Bing Haber Arama istemci kitaplığıyla haber aramaya başlamak için bu hızlı başlangıcı kullanın. Bing Haber Arama,çoğu programlama diliyle uyumlu bir REST API'ye sahip olsa da, istemci kitaplığı hizmeti uygulamalarınızla tümleştirmek için kolay bir yol sağlar. Bu örneğin kaynak kodu GitHub'da bulunabilir.
Önkoşullar
Maven, Gradle veya başka bir bağımlılık yönetim sistemi kullanarak Bing Haber Arama istemci kitaplığı bağımlılıklarını yükleyin. Maven POM dosyası şu bildirimi gerektirir:
<dependencies>
<dependency>
<groupId>com.microsoft.azure.cognitiveservices</groupId>
<artifactId>azure-cognitiveservices-newssearch</artifactId>
<version>0.0.1-beta-SNAPSHOT</version>
</dependency>
</dependencies>
Azure kaynağı oluşturma
Aşağıdaki Azure kaynaklarından birini oluşturarak Bing Haber Arama API'sini kullanmaya başlayın:
- Kaynağı silene kadar Azure portal aracılığıyla kullanılabilir.
- Hizmeti denemek için ücretsiz fiyatlandırma katmanını kullanın ve daha sonra üretim için ücretli bir katmana yükseltin.
- Kaynağı silene kadar Azure portal aracılığıyla kullanılabilir.
- Birden çok Azure AI hizmeti genelinde uygulamalarınız için aynı anahtarı ve uç noktayı kullanın.
Proje oluşturma ve başlatma
Sık kullandığınız IDE ortamında veya düzenleyicide yeni bir Java projesi oluşturun ve aşağıdaki kitaplıkları içeri aktarın.
import com.microsoft.azure.cognitiveservices.newssearch.*;
import com.microsoft.azure.cognitiveservices.newssearch.implementation.NewsInner;
import com.microsoft.azure.cognitiveservices.newssearch.implementation.NewsSearchAPIImpl;
import com.microsoft.azure.cognitiveservices.newssearch.implementation.TrendingTopicsInner;
import com.microsoft.rest.credentials.ServiceClientCredentials;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
Arama istemcisi oluşturma ve kimlik bilgilerini depolama
Yeni
NewsSearchAPIImpl
bir arama istemcisi döndüren adlıgetClient()
bir yöntem oluşturun. Uç noktanızı yeniNewsSearchAPIImpl
nesnenin ilk parametresi ve kimlik bilgilerinizi depolamak için yeniServiceClientCredentials
bir nesne olarak ekleyin.public static NewsSearchAPIImpl getClient(final String subscriptionKey) { return new NewsSearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/", new ServiceClientCredentials() { }); }
Nesnesini oluşturmak
ServiceClientCredentials
için işlevini geçersiz kılınapplyCredentialsFilter()
. yöntemine birOkHttpClient.Builder
geçirin ve istemci kitaplığı çağrısı için kimlik bilgilerinizi oluşturmak için oluşturucununaddNetworkInterceptor()
yöntemini kullanın.new ServiceClientCredentials() { @Override public void applyCredentialsFilter(OkHttpClient.Builder builder) { builder.addNetworkInterceptor( new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request request = null; Request original = chain.request(); // Request customization: add request headers. Request.Builder requestBuilder = original.newBuilder() .addHeader("Ocp-Apim-Subscription-Key", subscriptionKey); request = requestBuilder.build(); return chain.proceed(request); } }); } });
Arama isteği gönderme ve alma
Bing Haber Arama hizmeti çağıran
getClient()
ve arama isteği gönderen bir yöntem oluşturun. Aramayı pazar ve sayı parametreleriyle filtreleyin, ardından ilk haber sonucu hakkındaki bilgileri yazdırın: ad, URL, yayın tarihi, açıklama, sağlayıcı adı ve aramanız için tahmini eşleşmelerin toplam sayısı.public static void newsSearch(String subscriptionKey) { NewsSearchAPIImpl client = getClient(subscriptionKey); String searchTerm = "Quantum Computing"; NewsInner newsResults = client.searchs().list(searchTerm, null, null, null, null, null, 100, null, "en-us", null, null, null, null, null, null, null); if (newsResults.value().size() > 0) { NewsArticle firstNewsResult = newsResults.value().get(0); System.out.println(String.format("TotalEstimatedMatches value: %d", newsResults.totalEstimatedMatches())); System.out.println(String.format("News result count: %d", newsResults.value().size())); System.out.println(String.format("First news name: %s", firstNewsResult.name())); System.out.println(String.format("First news url: %s", firstNewsResult.url())); System.out.println(String.format("First news description: %s", firstNewsResult.description())); System.out.println(String.format("First news published time: %s", firstNewsResult.datePublished())); System.out.println(String.format("First news provider: %s", firstNewsResult.provider().get(0).name())); } else { System.out.println("Couldn't find news results!"); } }
Kodu yürütmek için arama yönteminizi bir
main()
yönteme ekleyin.public static void main(String[] args) { String subscriptionKey = "YOUR-SUBSCRIPTION-KEY"; NewsSearchSDK.newsSearch(subscriptionKey); }
Sonraki adımlar
JavaScript için Bing Haber Arama istemci kitaplığıyla haber aramaya başlamak için bu hızlı başlangıcı kullanın. Bing Haber Arama,çoğu programlama diliyle uyumlu bir REST API'ye sahip olsa da, istemci kitaplığı hizmeti uygulamalarınızla tümleştirmek için kolay bir yol sağlar. Bu örneğin kaynak kodu GitHub'da bulunabilir.
Önkoşullar
- Node.js'in en son sürümü.
-
JavaScript için Bing Haber Arama SDK'sı
- Yüklemek için
npm install @azure/cognitiveservices-newssearch
- Yüklemek için
- İstemcinin
CognitiveServicesCredentials
kimliğini doğrulamak için paketten@azure/ms-rest-azure-js
sınıfı.- Yüklemek için
npm install @azure/ms-rest-azure-js
- Yüklemek için
Azure kaynağı oluşturma
Aşağıdaki Azure kaynaklarından birini oluşturarak Bing Haber Arama API'sini kullanmaya başlayın:
- Kaynağı silene kadar Azure portal aracılığıyla kullanılabilir.
- Hizmeti denemek için ücretsiz fiyatlandırma katmanını kullanın ve daha sonra üretim için ücretli bir katmana yükseltin.
- Kaynağı silene kadar Azure portal aracılığıyla kullanılabilir.
- Birden çok Azure AI hizmeti genelinde uygulamalarınız için aynı anahtarı ve uç noktayı kullanın.
Uygulamayı oluşturma ve başlatma
CognitiveServicesCredentials
nesnesinin bir örneğini oluşturun. Abonelik anahtarınız ve bir arama terimi için değişkenler oluşturun.const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials; let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY'); let search_term = 'Winter Olympics'
istemcisinin örneğini oluşturun:
const NewsSearchAPIClient = require('@azure/cognitiveservices-newssearch'); let client = new NewsSearchAPIClient(credentials);
Arama sorgusu gönderme
İstemciyi kullanarak bir sorgu terimiyle (bu örnekte "Kış Olimpiyatları") arama yapın:
client.newsOperations.search(search_term).then((result) => { console.log(result.value); }).catch((err) => { throw err; });
Kod konsola result.value
öğelerini yazdırır ve metin ayrıştırması gerçekleştirmez. Varsa sonuçlar kategorilere ayrılmış şekilde şunları içerir:
_type: 'NewsArticle'
_type: 'WebPage'
_type: 'VideoObject'
_type: 'ImageObject'
Sonraki adımlar
Python için Bing Haber Arama istemci kitaplığıyla haber aramaya başlamak için bu hızlı başlangıcı kullanın. Bing Haber Arama,çoğu programlama diliyle uyumlu bir REST API'ye sahip olsa da, istemci kitaplığı hizmeti uygulamalarınızla tümleştirmek için kolay bir yol sağlar. Bu örneğin kaynak kodu GitHub'da bulunabilir.
Önkoşullar
- Python 2.x veya 3.x
Python geliştirmeniz için bir sanal ortam kullanmanız önerilir. venv modülüyle sanal ortamı yükleyebilir ve başlatabilirsiniz. Python 2.7 için bir virtualenv yüklemeniz gerekir. Şu şekilde sanal ortam oluşturabilirsiniz:
python -m venv mytestenv
Bing Haber Arama istemci kitaplığı bağımlılıklarını şu komutla yükleyebilirsiniz:
python -m pip install azure-cognitiveservices-search-newssearch
Azure kaynağı oluşturma
Aşağıdaki Azure kaynaklarından birini oluşturarak Bing Haber Arama API'sini kullanmaya başlayın:
- Kaynağı silene kadar Azure portal aracılığıyla kullanılabilir.
- Hizmeti denemek için ücretsiz fiyatlandırma katmanını kullanın ve daha sonra üretim için ücretli bir katmana yükseltin.
- Kaynağı silene kadar Azure portal aracılığıyla kullanılabilir.
- Birden çok Azure AI hizmeti genelinde uygulamalarınız için aynı anahtarı ve uç noktayı kullanın.
Uygulamayı oluşturma ve başlatma
Sık kullandığınız IDE veya düzenleyicide yeni bir Python dosyası oluşturun ve aşağıdaki kitaplıkları içeri aktarın. Abonelik anahtarınız ve arama teriminiz için bir değişken oluşturun.
from azure.cognitiveservices.search.newssearch import NewsSearchClient from msrest.authentication import CognitiveServicesCredentials subscription_key = "YOUR-SUBSCRIPTION-KEY" endpoint = "YOUR-ENDPOINT" search_term = "Quantum Computing"
İstemciyi başlatma ve istek gönderme
CognitiveServicesCredentials
örneği oluşturun.client = NewsSearchClient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
Haber Arama API'sine bir arama sorgusu gönderin, yanıtı depolayın.
news_result = client.news.search(query=search_term, market="en-us", count=10)
Yanıtı ayrıştırma
Arama sonuçları bulunursa ilk web sayfası sonucunu yazdırın:
if news_result.value:
first_news_result = news_result.value[0]
print("Total estimated matches value: {}".format(
news_result.total_estimated_matches))
print("News result count: {}".format(len(news_result.value)))
print("First news name: {}".format(first_news_result.name))
print("First news url: {}".format(first_news_result.url))
print("First news description: {}".format(first_news_result.description))
print("First published time: {}".format(first_news_result.date_published))
print("First news provider: {}".format(first_news_result.provider[0].name))
else:
print("Didn't see any news result data..")