Aracılığıyla paylaş


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

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

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

  1. adlı get_suggestions()bir işlev oluşturun.

  2. Bu işlevde abonelik anahtarınızı anahtar olarak içeren Ocp-Apim-Subscription-Key bir sözlüğe ekleyin.

  3. HTTPS istemci nesnesi oluşturmak için kullanın http.client.HTTPSConnection() . Yolunuz, parametreleriniz ve üst bilgi bilgilerinizle kullanarak request() bir GET istek gönderin.

  4. Yanıtı ile getresponse()depolayın ve döndürin 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. ç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"
      },
      
      . . .
    ]
  }
}

Sonraki adımlar