Hızlı Başlangıç: Python kullanarak Bing Varlık Arama REST API'sine arama isteği gönderme
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.
Bing Varlık Arama API'sine ilk çağrınızı yapmak ve JSON yanıtını görüntülemek için bu hızlı başlangıcı kullanın. Bu basit Python uygulaması API'ye bir haber arama sorgusu gönderir ve yanıtı görüntüler. Bu örneğin kaynak kodu GitHub'da kullanılabilir.
Bu uygulama Python'da yazılmış olsa da, API çoğu programlama diliyle uyumlu bir RESTful Web hizmetidir.
Önkoşullar
- Python 2.x veya 3.x
Azure kaynağı oluşturma
Aşağıdaki Azure kaynaklarından birini oluşturarak Bing Varlık Arama API'sini kullanmaya başlayın.
Bing Varlık Arama 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.
- Bing Varlık Arama, Bing Arama v7 kaynağının ücretli katmanlarında da sunulur.
Çoklu Hizmet kaynağı
- 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 içeri aktarmaları ekleyin. Abonelik anahtarınız, uç noktanız, pazarınız ve arama sorgunuz için değişkenler oluşturun. Genel uç noktayı aşağıdaki kodda kullanabilir veya kaynağınız için Azure portal görüntülenen özel alt etki alanı uç noktasını kullanabilirsiniz.
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'
Market değişkeninizi parametresine ekleyerek bir istek URL'si
?mkt=
oluşturun. Sorgunuzu URL ile kodlayın ve parametresine&q=
ekleyin.params = '?mkt=' + mkt + '&q=' + urllib.parse.quote (query)
İstek gönderme ve yanıt alma
adlı
get_suggestions()
bir işlev oluşturun.Bu işlevde abonelik anahtarınızı anahtar olarak içeren
Ocp-Apim-Subscription-Key
bir sözlüğe ekleyin.HTTPS istemci nesnesi oluşturmak için kullanın
http.client.HTTPSConnection()
. Yolunuz, parametreleriniz ve üst bilgi bilgilerinizle kullanarakrequest()
birGET
istek gönderin.Yanıtı ile
getresponse()
depolayın ve döndürinresponse.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()
çağrısı yapıp
get_suggestions()
JSON yanıtını yazdırın.result = get_suggestions () print (json.dumps(json.loads(result), indent=4))
Örnek JSON yanıtı
Başarılı yanıt, aşağıdaki örnekte gösterildiği gibi JSON biçiminde döndürülür:
{
"_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"
},
. . .
]
}
}