빠른 시작: Python을 사용하여 Bing Entity Search REST API에 검색 요청 보내기
경고
2020년 10월 30일에 Bing Search API가 Azure AI 서비스에서 Bing Search Services로 이동되었습니다. 이 문서는 참조용으로만 제공됩니다. 업데이트된 문서는 Bing search API 문서를 참조하세요. Bing 검색을 위한 새 Azure 리소스 만들기에 대한 지침은 Azure Marketplace를 통해 Bing Search 리소스 만들기를 참조하세요.
이 빠른 시작을 사용하여 Bing Entity Search API를 처음 호출하고 JSON 응답을 봅니다. 이 간단한 Python 애플리케이션은 뉴스 검색 쿼리를 API에 보내고, 응답을 표시합니다. 이 샘플의 소스 코드는 GitHub에 제공됩니다.
이 애플리케이션은 Python으로 작성되었지만, API는 대부분의 프로그래밍 언어와 호환되는 RESTful 웹 서비스입니다.
사전 요구 사항
- Python 2.x 또는 3.x
Azure 리소스 만들기
다음 Azure 리소스 중 하나를 만들어 Bing Entity Search API 사용을 시작합니다.
Bing Entity Search 리소스
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.
- Bing Entity Search는 Bing Search v7 리소스의 유료 계층에서도 제공됩니다.
다중 서비스 리소스
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.
애플리케이션 만들기 및 초기화
선호하는 IDE 또는 편집기에서 새 Python 파일을 만들고, 다음 가져오기를 추가합니다. 구독 키, 엔드포인트, 시장 및 검색 쿼리에 대한 변수를 만듭니다. 다음 코드에서 글로벌 엔드포인트를 사용하거나 리소스의 Azure Portal에 표시되는 사용자 지정 하위 도메인 엔드포인트를 사용할 수 있습니다.
import http.client, urllib.parse import json subscriptionKey = 'ENTER YOUR KEY HERE' host = 'api.bing.microsoft.com' path = '/v7.0/search' mkt = 'en-US' query = 'italian restaurants near me'
?mkt=
매개 변수에 시장 변수를 추가하여 요청 url을 만듭니다. 쿼리를 Url로 인코딩하고&q=
매개 변수에 추가합니다.params = '?mkt=' + mkt + '&q=' + urllib.parse.quote (query)
요청 보내기 및 응답 받기
get_suggestions()
라는 함수를 만듭니다.이 함수에서
Ocp-Apim-Subscription-Key
를 키로 사용하여 구독 키를 사전에 추가합니다.http.client.HTTPSConnection()
을 사용하여 HTTPS 클라이언트 개체를 만듭니다. 경로 및 매개 변수와 헤더 정보가 포함된request()
를 사용하여GET
요청을 보냅니다.getresponse()
를 사용하여 응답을 저장하고response.read()
를 반환합니다.def get_suggestions (): headers = {'Ocp-Apim-Subscription-Key': subscriptionKey} conn = http.client.HTTPSConnection (host) conn.request ("GET", path + params, None, headers) response = conn.getresponse () return response.read()
get_suggestions()
를 호출하고 JSON 응답을 출력합니다.result = get_suggestions () print (json.dumps(json.loads(result), indent=4))
예제 JSON 응답
성공한 응답은 다음 예제와 같이 JSON으로 반환됩니다.
{
"_type": "SearchResponse",
"queryContext": {
"originalQuery": "italian restaurant near me",
"askUserForLocation": true
},
"places": {
"value": [
{
"_type": "LocalBusiness",
"webSearchUrl": "https://www.bing.com/search?q=sinful+bakery&filters=local...",
"name": "Liberty's Delightful Sinful Bakery & Cafe",
"url": "https://www.contoso.com/",
"entityPresentationInfo": {
"entityScenario": "ListItem",
"entityTypeHints": [
"Place",
"LocalBusiness"
]
},
"address": {
"addressLocality": "Seattle",
"addressRegion": "WA",
"postalCode": "98112",
"addressCountry": "US",
"neighborhood": "Madison Park"
},
"telephone": "(800) 555-1212"
},
. . .
{
"_type": "Restaurant",
"webSearchUrl": "https://www.bing.com/search?q=Pickles+and+Preserves...",
"name": "Munson's Pickles and Preserves Farm",
"url": "https://www.princi.com/",
"entityPresentationInfo": {
"entityScenario": "ListItem",
"entityTypeHints": [
"Place",
"LocalBusiness",
"Restaurant"
]
},
"address": {
"addressLocality": "Seattle",
"addressRegion": "WA",
"postalCode": "98101",
"addressCountry": "US",
"neighborhood": "Capitol Hill"
},
"telephone": "(800) 555-1212"
},
. . .
]
}
}