빠른 시작: 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 사용을 시작합니다.
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.
프로젝트 만들기 및 초기화
Visual Studio에서 새 C# 콘솔 솔루션을 만듭니다. 그런 다음, 주 코드 파일에 다음을 추가합니다.
using System; using System.Linq; using Microsoft.Azure.CognitiveServices.Search.NewsSearch;
API 키, 검색 용어에 대한 변수를 만든 다음, 뉴스 검색 클라이언트를 인스턴스화합니다.
var key = "YOUR-ACCESS-KEY"; var searchTerm = "Quantum Computing"; var client = new NewsSearchClient(new ApiKeyServiceClientCredentials(key));
요청 보내기 및 결과 구문 분석
클라이언트를 사용하여 Bing News Search 서비스에 검색 요청을 보냅니다.
var newsResults = client.News.SearchAsync(query: searchTerm, market: "en-us", count: 10).Result;
결과가 반환되는 경우 다음을 구문 분석합니다.
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 사용을 시작합니다.
- 리소스를 삭제할 때까지 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;
검색 클라이언트 및 저장소 자격 증명 만들기
새
NewsSearchAPIImpl
검색 클라이언트를 반환하는getClient()
라는 메서드를 만듭니다. 새NewsSearchAPIImpl
개체 및 새ServiceClientCredentials
개체에 대해 첫 번째 매개 변수로 엔드포인트를 추가하여 자격 증명을 저장합니다.public static NewsSearchAPIImpl getClient(final String subscriptionKey) { return new NewsSearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/", new ServiceClientCredentials() { }); }
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); } }); } });
검색 요청 보내고 받기
getClient()
를 호출하는 메서드를 만들고 Bing News Search 서비스에 검색 요청을 보냅니다. market 및 count 매개 변수로 검색을 필터링한 다음, 첫 번째 뉴스 결과의 이름, 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!"); } }
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 사용을 시작합니다.
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.
애플리케이션 만들기 및 초기화
CognitiveServicesCredentials
인스턴스를 만듭니다. 구독 키 및 검색 용어에 대한 변수를 만듭니다.const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials; let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY'); let search_term = 'Winter Olympics'
클라이언트를 인스턴스화합니다.
const NewsSearchAPIClient = require('@azure/cognitiveservices-newssearch'); let client = new NewsSearchAPIClient(credentials);
검색 쿼리 보내기
클라이언트를 사용하여 쿼리 용어를 검색합니다(이 경우 “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 2.x 또는 3.x
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 사용을 시작합니다.
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.
애플리케이션 만들기 및 초기화
즐겨 찾는 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"
클라이언트 초기화 및 요청 보내기
CognitiveServicesCredentials
의 인스턴스를 만듭니다.client = NewsSearchClient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
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..")