Mulai cepat: Kirim permintaan pencarian ke REST API Pencarian Entitas Bing menggunakan Python
Peringatan
Pada 30 Oktober 2020, API Bing Search dipindahkan dari layanan Azure AI ke Bing Search Services. Dokumentasi ini disediakan hanya untuk referensi. Untuk dokumentasi terbaru, lihat dokumentasi Bing Search API. Untuk petunjuk tentang cara membuat sumber daya Azure baru untuk pencarian Bing, lihat Membuat sumber daya Pencarian Bing melalui Marketplace Azure.
Gunakan panduan mulai cepat ini untuk melakukan panggilan pertama Anda ke Bing Entity Search API dan melihat respons JSON. Aplikasi Python sederhana ini mengirimkan kueri pencarian berita ke API, dan menampilkan responsnya. Kode sumber untuk sampel ini tersedia di GitHub.
Meskipun aplikasi ini ditulis dalam Python, API adalah layanan Web RESTful yang kompatibel dengan sebagian besar bahasa pemrograman.
Prasyarat
- Python 2.x atau 3.x
Membuat grup sumber daya Azure
Mulai gunakan Bing Entity Search API dengan membuat salah satu sumber daya Azure berikut.
Sumber daya Bing Entity Search
- Tersedia melalui portal Azure hingga Anda menghapus sumber daya.
- Gunakan tingkat harga gratis untuk mencoba layanan, dan tingkatkan ke tingkat berbayar untuk produksi di kemudian hari.
- Bing Entity Search juga ditawarkan dalam tingkat berbayar sumber daya Bing Search v7.
Sumber daya multilayanan
- Tersedia melalui portal Azure hingga Anda menghapus sumber daya.
- Gunakan kunci dan titik akhir yang sama untuk aplikasi Anda, di beberapa layanan Azure AI.
Membuat dan menginisialisasi aplikasi
Buat file Python baru di IDE atau editor favorit Anda, dan tambahkan impor berikut. Buat variabel untuk kunci langganan, titik akhir, pasar, dan kueri penelusuran Anda. Anda dapat menggunakan titik akhir global dalam kode berikut, atau menggunakan titik akhir subdomain kustom yang ditampilkan di portal Microsoft Azure untuk sumber daya Anda.
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'
Buat url permintaan dengan menambahkan variabel pasar Anda ke
?mkt=
parameter. Kueri url-encode Anda dan tambahkan ke&q=
parameter.params = '?mkt=' + mkt + '&q=' + urllib.parse.quote (query)
Mengirim permintaan dan mendapatkan respons
Buat fungsi yang disebut
get_suggestions()
.Dalam fungsi ini, tambahkan kunci langganan Anda ke kamus
Ocp-Apim-Subscription-Key
sebagai kunci.Gunakan
http.client.HTTPSConnection()
untuk membuat objek klien HTTPS. KirimGET
permintaan menggunakanrequest()
jalur dan parameter Anda, dan informasi header.Simpan respons dengan
getresponse()
, dan kembalikanresponse.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()
Memanggil
get_suggestions()
, dan mencetak respons JSON.result = get_suggestions () print (json.dumps(json.loads(result), indent=4))
Contoh respons JSON
Respons yang berhasil dikembalikan di JSON, seperti yang diperlihatkan dalam contoh berikut:
{
"_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"
},
. . .
]
}
}