다음을 통해 공유


빠른 시작: Bing News Search 클라이언트 라이브러리 사용

경고

2020년 10월 30일에 Bing Search API가 Azure AI 서비스에서 Bing Search Services로 이동되었습니다. 이 문서는 참조용으로만 제공됩니다. 업데이트된 문서는 Bing search API 문서를 참조하세요. Bing 검색을 위한 새 Azure 리소스 만들기에 대한 지침은 Azure Marketplace를 통해 Bing Search 리소스 만들기를 참조하세요.

C#용 Bing News Search 클라이언트 라이브러리를 사용하여 뉴스 검색을 시작하려면 이 빠른 시작을 사용합니다. Bing News Search에는 대부분의 프로그래밍 언어와 호환되는 REST API가 있는 반면, 클라이언트 라이브러리를 사용하면 서비스를 애플리케이션에 쉽게 통합할 수 있습니다. 이 샘플의 소스 코드는 GitHub에서 확인할 수 있습니다.

사전 요구 사항

  • Visual Studio 2017 이상의 모든 버전.

  • NuGet 패키지로 사용 가능한 Json.NET 프레임워크.

  • Linux/MacOS를 사용하는 경우 이 애플리케이션은 Mono를 사용하여 실행할 수 있습니다.

  • Bing News Search SDK NuGet 패키지 이 패키지를 설치하면 다음도 설치됩니다.

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

Bing News Search 클라이언트 라이브러리를 사용하여 콘솔 애플리케이션을 설정하려면 Visual Studio의 솔루션 탐색기에서 Manage NuGet Packages 옵션을 찾습니다. Microsoft.Azure.CognitiveServices.Search.NewsSearch 패키지를 추가합니다.

Azure 리소스 만들기

다음 Azure 리소스 중 하나를 만들어 Bing News Search API 사용을 시작합니다.

Bing Search v7 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.

다중 서비스 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.

프로젝트 만들기 및 초기화

  1. Visual Studio에서 새 C# 콘솔 솔루션을 만듭니다. 그런 다음, 주 코드 파일에 다음을 추가합니다.

    using System;
    using System.Linq;
    using Microsoft.Azure.CognitiveServices.Search.NewsSearch;
    
  2. API 키, 검색 용어에 대한 변수를 만든 다음, 뉴스 검색 클라이언트를 인스턴스화합니다.

    var key = "YOUR-ACCESS-KEY";
    var searchTerm = "Quantum Computing";
    var client = new NewsSearchClient(new ApiKeyServiceClientCredentials(key));
    

요청 보내기 및 결과 구문 분석

  1. 클라이언트를 사용하여 Bing News Search 서비스에 검색 요청을 보냅니다.

    var newsResults = client.News.SearchAsync(query: searchTerm, market: "en-us", count: 10).Result;
    
  2. 결과가 반환되는 경우 다음을 구문 분석합니다.

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

다음 단계

Java용 Bing News Search 클라이언트 라이브러리를 사용하여 뉴스 검색을 시작하려면 이 빠른 시작을 사용합니다. Bing News Search에는 대부분의 프로그래밍 언어와 호환되는 REST API가 있는 반면, 클라이언트 라이브러리를 사용하면 서비스를 애플리케이션에 쉽게 통합할 수 있습니다. 이 샘플의 소스 코드는 GitHub에서 확인할 수 있습니다.

사전 요구 사항

Maven, Gradle 또는 기타 종속성 관리 시스템을 사용하여 Bing News Search 클라이언트 라이브러리 종속성을 설치합니다. Maven POM 파일에는 다음 선언이 필요합니다.

    <dependencies>
    <dependency>
        <groupId>com.microsoft.azure.cognitiveservices</groupId>
        <artifactId>azure-cognitiveservices-newssearch</artifactId>
        <version>0.0.1-beta-SNAPSHOT</version>
    </dependency>
    </dependencies>

Azure 리소스 만들기

다음 Azure 리소스 중 하나를 만들어 Bing News Search API 사용을 시작합니다.

Bing Search v7 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.

다중 서비스 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.

프로젝트 만들기 및 초기화

즐겨 찾는 IDE 또는 편집기에서 새 Java 프로젝트를 만들고 다음 라이브러리를 가져옵니다.

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;

검색 클라이언트 및 저장소 자격 증명 만들기

  1. NewsSearchAPIImpl 검색 클라이언트를 반환하는 getClient()라는 메서드를 만듭니다. 새 NewsSearchAPIImpl 개체 및 새 ServiceClientCredentials 개체에 대해 첫 번째 매개 변수로 엔드포인트를 추가하여 자격 증명을 저장합니다.

    public static NewsSearchAPIImpl getClient(final String subscriptionKey) {
        return new NewsSearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/",
                new ServiceClientCredentials() {
                });
    }
    
  2. ServiceClientCredentials 개체를 만들려면 applyCredentialsFilter() 함수를 재정의합니다. 메서드에 OkHttpClient.Builder를 전달하고, 작성기의 addNetworkInterceptor() 메서드를 사용하여 클라이언트 라이브러리 호출에 대한 자격 증명을 만듭니다.

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

검색 요청 보내고 받기

  1. getClient()를 호출하는 메서드를 만들고 Bing News Search 서비스에 검색 요청을 보냅니다. marketcount 매개 변수로 검색을 필터링한 다음, 첫 번째 뉴스 결과의 이름, URL, 게시 날짜, 설명, 공급 기업 이름 및 검색에 대한 예상되는 일치 항목의 총 수를 비롯한 정보를 출력합니다.

    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. main() 메서드에 검색 메서드를 추가하여 코드를 실행합니다.

    public static void main(String[] args) {
        String subscriptionKey = "YOUR-SUBSCRIPTION-KEY";
        NewsSearchSDK.newsSearch(subscriptionKey);
    }
    

다음 단계

JavaScript용 Bing News Search 클라이언트 라이브러리를 사용하여 뉴스 검색을 시작하려면 이 빠른 시작을 사용합니다. Bing News Search에는 대부분의 프로그래밍 언어와 호환되는 REST API가 있는 반면, 클라이언트 라이브러리를 사용하면 서비스를 애플리케이션에 쉽게 통합할 수 있습니다. 이 샘플의 소스 코드는 GitHub에서 확인할 수 있습니다.

사전 요구 사항

  • 최신 버전의 Node.js.
  • JavaScript용 Bing News Search SDK
    • 설치하려면 npm install @azure/cognitiveservices-newssearch를 실행합니다.
  • 클라이언트를 인증하는 @azure/ms-rest-azure-js 패키지의 CognitiveServicesCredentials 클래스입니다.
    • 설치하려면 npm install @azure/ms-rest-azure-js를 실행합니다.

Azure 리소스 만들기

다음 Azure 리소스 중 하나를 만들어 Bing News Search API 사용을 시작합니다.

Bing Search v7 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.

다중 서비스 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.

애플리케이션 만들기 및 초기화

  1. CognitiveServicesCredentials 인스턴스를 만듭니다. 구독 키 및 검색 용어에 대한 변수를 만듭니다.

    const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials;
    let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY');
    let search_term = 'Winter Olympics'
    
  2. 클라이언트를 인스턴스화합니다.

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

검색 쿼리 보내기

  1. 클라이언트를 사용하여 쿼리 용어를 검색합니다(이 경우 “Winter Olympics”).

    client.newsOperations.search(search_term).then((result) => {
        console.log(result.value);
    }).catch((err) => {
        throw err;
    });
    

코드가 텍스트 구문 분석 없이 result.value 항목을 콘솔에 인쇄합니다. 범주별 결과가 있는 경우 결과에 다음이 포함됩니다.

  • _type: 'NewsArticle'
  • _type: 'WebPage'
  • _type: 'VideoObject'
  • _type: 'ImageObject'

다음 단계

Python용 Bing News Search 클라이언트 라이브러리를 사용하여 뉴스 검색을 시작하려면 이 빠른 시작을 사용합니다. Bing News Search에는 대부분의 프로그래밍 언어와 호환되는 REST API가 있는 반면, 클라이언트 라이브러리를 사용하면 서비스를 애플리케이션에 쉽게 통합할 수 있습니다. 이 샘플의 소스 코드는 GitHub에서 확인할 수 있습니다.

사전 요구 사항

Python 개발에 대해 가상 환경을 사용하는 것이 좋습니다. venv module을 사용하여 가상 환경을 설치하고 초기화할 수 있습니다. Python 2.7용 virtualenv를 설치해야 합니다. 다음을 사용하여 가상 환경을 만들 수 있습니다.

python -m venv mytestenv

이 명령을 사용하여 Bing News Search 클라이언트 라이브러리 종속성을 설치할 수 있습니다.

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

Azure 리소스 만들기

다음 Azure 리소스 중 하나를 만들어 Bing News Search API 사용을 시작합니다.

Bing Search v7 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.

다중 서비스 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.

애플리케이션 만들기 및 초기화

  1. 즐겨 찾는 IDE 또는 편집기에서 새 Python 파일을 만들고 다음 라이브러리를 가져옵니다. 구독 키 및 검색 용어에 대한 변수를 만듭니다.

    from azure.cognitiveservices.search.newssearch import NewsSearchClient
    from msrest.authentication import CognitiveServicesCredentials
    subscription_key = "YOUR-SUBSCRIPTION-KEY"
    endpoint = "YOUR-ENDPOINT"
    search_term = "Quantum Computing"
    

클라이언트 초기화 및 요청 보내기

  1. CognitiveServicesCredentials의 인스턴스를 만듭니다.

    client = NewsSearchClient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
    
  2. News Search API에 검색 쿼리를 보내고, 응답을 저장합니다.

    news_result = client.news.search(query=search_term, market="en-us", count=10)
    

응답 구문 분석

검색 결과가 발견되면 첫 번째 웹 페이지 결과를 출력합니다.

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

다음 단계