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

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:

Bing Arama v7 kaynağı

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

Çok hizmetli kaynak

  • 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

  1. 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;
    
  2. 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

  1. 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;
    
  2. 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:

Bing Arama v7 kaynağı

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

Çok hizmetli kaynak

  • 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

  1. 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 yeni ServiceClientCredentials bir nesne olarak ekleyin.

    public static NewsSearchAPIImpl getClient(final String subscriptionKey) {
        return new NewsSearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/",
                new ServiceClientCredentials() {
                });
    }
    
  2. Nesnesini oluşturmak ServiceClientCredentials için işlevini geçersiz kılın applyCredentialsFilter() . yöntemine bir OkHttpClient.Builder geçirin ve istemci kitaplığı çağrısı için kimlik bilgilerinizi oluşturmak için oluşturucunun addNetworkInterceptor() 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

  1. 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!");
        }
    
    }
    
    
  2. 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
  • İ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

Azure kaynağı oluşturma

Aşağıdaki Azure kaynaklarından birini oluşturarak Bing Haber Arama API'sini kullanmaya başlayın:

Bing Arama v7 kaynağı

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

Çok hizmetli kaynak

  • 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

  1. 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'
    
  2. istemcisinin örneğini oluşturun:

    const NewsSearchAPIClient = require('@azure/cognitiveservices-newssearch');
    let client = new NewsSearchAPIClient(credentials);
    

Arama sorgusu gönderme

  1. İ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 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:

v7 kaynağını Bing Arama

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

Çok hizmetli kaynak

  • 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

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

  1. CognitiveServicesCredentials örneği oluşturun.

    client = NewsSearchClient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
    
  2. 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..")

Sonraki adımlar