Bagikan melalui


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

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

  1. 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'
    
  2. 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

  1. Buat fungsi yang disebut get_suggestions().

  2. Dalam fungsi ini, tambahkan kunci langganan Anda ke kamus Ocp-Apim-Subscription-Key sebagai kunci.

  3. Gunakan http.client.HTTPSConnection() untuk membuat objek klien HTTPS. KirimGETpermintaan menggunakan request() jalur dan parameter Anda, dan informasi header.

  4. Simpan respons dengan getresponse(), dan kembalikan 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()
    
  5. 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"
      },
      
      . . .
    ]
  }
}

Langkah berikutnya