Schnellstart: Verwenden des Bing-Websuche-SDK für PythonQuickstart: Use the Bing Web Search SDK for Python

Das Bing-Websuche-SDK erleichtert die Integration der Bing-Websuche in Ihre Python-Anwendung.The Bing Web Search SDK makes it easy to integrate Bing Web Search into your Python application. In dieser Schnellstartanleitung erfahren Sie, wie Sie eine Anforderung senden, eine JSON-Antwort empfangen und die Ergebnisse filtern und analysieren.In this quickstart, you'll learn how to send a request, receive a JSON response, and filter and parse the results.

Möchten Sie den Code jetzt sehen?Want to see the code right now? Die Beispiele zum Bing-Websuche-SDK für Python sind auf GitHub verfügbar.The Bing Web Search SDK for Python samples are available on GitHub.

Für diesen Schnellstart wird ein Azure Cognitive Services-Konto mit Bing-Suche-APIs benötigt.This quickstart requires an Azure Cognitive Services account with Bing Search APIs. Wenn Sie über kein Konto verfügen, können Sie über die kostenlose Testversion einen Abonnementschlüssel abrufen.If you don't have an account, you can use the free trial to get a subscription key.

Siehe auch Cognitive Services-Preise – Bing-Suche-APISee also Cognitive Services Pricing - Bing Search API.

VoraussetzungenPrerequisites

Das Bing-Websuche-SDK ist mit Python 2.7, 3.3, 3.4, 3.5 und 3.6 kompatibel.The Bing Web Search SDK is compatible with Python 2.7, 3.3, 3.4, 3.5, and 3.6. Es wird empfohlen, für diese Schnellstartanleitung eine virtuelle Umgebung zu verwenden.We recommend using a virtual environment for this quickstart.

  • Python 2.7, 3.3, 3.4, 3.5 oder 3.6Python 2.7, 3.3, 3.4, 3.5 or 3.6
  • virtualenv für Python 2.7virtualenv for Python 2.7
  • venv für Python 3.xvenv for Python 3.x

Erstellen und Konfigurieren der virtuellen UmgebungCreate and configure your virtual environment

Die Anweisungen zum Einrichten und Konfigurieren einer virtuellen Umgebung unterscheiden sich für Python 2.x und Python 3.x.The instructions to set up and configure a virtual environment are different for Python 2.x and Python 3.x. Führen Sie die folgenden Schritte aus, um die virtuelle Umgebung zu erstellen und zu initialisieren.Follow the steps below to create and initialize your virtual environment.

Python 2.xPython 2.x

Erstellen Sie mit virtualenv eine virtuelle Umgebung für Python 2.7:Create a virtual environment with virtualenv for Python 2.7:

virtualenv mytestenv

Aktivieren Sie Ihre Umgebung:Activate your environment:

cd mytestenv
source bin/activate

Installieren Sie Abhängigkeiten des Bing-Websuche-SDK:Install Bing Web Search SDK dependencies:

python -m pip install azure-cognitiveservices-search-websearch

Python 3.xPython 3.x

Erstellen Sie mit venv eine virtuelle Umgebung für Python 3.x:Create a virtual environment with venv for Python 3.x:

python -m venv mytestenv

Installieren Sie Abhängigkeiten des Bing-Websuche-SDK:Install Bing Web Search SDK dependencies:

cd mytestenv
python -m pip install azure-cognitiveservices-search-websearch

Erstellen eines Clients und Ausgeben der ersten ErgebnisseCreate a client and print your first results

Sie haben Ihre virtuelle Umgebung eingerichtet und Abhängigkeiten installiert. Erstellen Sie nun einen Client.Now that you've set up your virtual environment and installed dependencies, let's create a client. Der Client verarbeitet Anforderungen an die und Antworten von der Bing-Websuche-API.The client will handle requests to and responses from the Bing Web Search API.

Wenn die Antwort Webseiten, Bilder, Nachrichten oder Videos enthält, wird jeweils das erste Ergebnis für diese Elemente ausgegeben.If the response contains web pages, images, news, or videos, the first result for each is printed.

  1. Erstellen Sie in Ihrer bevorzugten IDE oder Ihrem bevorzugten Editor ein neues Python-Projekt.Create a new Python project using your favorite IDE or editor.

  2. Kopieren Sie diesen Beispielcode in Ihr Projekt:Copy this sample code into your project:

    # Import required modules.
    from azure.cognitiveservices.search.websearch import WebSearchAPI
    from azure.cognitiveservices.search.websearch.models import SafeSearch
    from msrest.authentication import CognitiveServicesCredentials
    
    # Replace with your subscription key.
    subscription_key = "YOUR_SUBSCRIPTION_KEY"
    
    # Instantiate the client and replace with your endpoint.
    client = WebSearchAPI(CognitiveServicesCredentials(subscription_key), base_url = "YOUR_ENDPOINT")
    
    # Make a request. Replace Yosemite if you'd like.
    web_data = client.web.search(query="Yosemite")
    print("\r\nSearched for Query# \" Yosemite \"")
    
    '''
    Web pages
    If the search response contains web pages, the first result's name and url
    are printed.
    '''
    if hasattr(web_data.web_pages, 'value'):
    
        print("\r\nWebpage Results#{}".format(len(web_data.web_pages.value)))
    
        first_web_page = web_data.web_pages.value[0]
        print("First web page name: {} ".format(first_web_page.name))
        print("First web page URL: {} ".format(first_web_page.url))
    
    else:
        print("Didn't find any web pages...")
    
    '''
    Images
    If the search response contains images, the first result's name and url
    are printed.
    '''
    if hasattr(web_data.images, 'value'):
    
        print("\r\nImage Results#{}".format(len(web_data.images.value)))
    
        first_image = web_data.images.value[0]
        print("First Image name: {} ".format(first_image.name))
        print("First Image URL: {} ".format(first_image.url))
    
    else:
        print("Didn't find any images...")
    
    '''
    News
    If the search response contains news, the first result's name and url
    are printed.
    '''
    if hasattr(web_data.news, 'value'):
    
        print("\r\nNews Results#{}".format(len(web_data.news.value)))
    
        first_news = web_data.news.value[0]
        print("First News name: {} ".format(first_news.name))
        print("First News URL: {} ".format(first_news.url))
    
    else:
        print("Didn't find any news...")
    
    '''
    If the search response contains videos, the first result's name and url
    are printed.
    '''
    if hasattr(web_data.videos, 'value'):
    
        print("\r\nVideos Results#{}".format(len(web_data.videos.value)))
    
        first_video = web_data.videos.value[0]
        print("First Videos name: {} ".format(first_video.name))
        print("First Videos URL: {} ".format(first_video.url))
    
    else:
        print("Didn't find any videos...")
    
  3. Ersetzen Sie SUBSCRIPTION_KEY durch einen gültigen Abonnementschlüssel.Replace SUBSCRIPTION_KEY with a valid subscription key.

  4. Ersetzen Sie YOUR_ENDPOINT durch Ihre Endpunkt-URL im Portal.Replace YOUR_ENDPOINT with your endpoint url in portal.

  5. Führen Sie das Programm aus.Run the program. Beispiel: python your_program.py.For example: python your_program.py.

Definieren von Funktionen und Filtern der ErgebnisseDefine functions and filter results

Nachdem Sie nun erstmal die Bing-Websuche-API aufgerufen haben, widmen wir uns als Nächstes einigen Funktionen.Now that you've made your first call to the Bing Web Search API, let's look at a few functions. In den folgenden Abschnitten werden SDK-Funktionen für die Abfrageoptimierung und Ergebnisfilterung vorgestellt.The following sections highlight SDK functionality for refining queries and filtering results. Jede Funktion kann dem im vorherigen Abschnitt erstellten Python-Programm hinzugefügt werden.Each function can be added to the Python program you created in the previous section.

Einschränken der von Bing zurückgegebenen Anzahl von ErgebnissenLimit the number of results returned by Bing

In diesem Beispiel wird mit den Parametern count und offset die Anzahl von Ergebnissen eingeschränkt, die mithilfe der search-Methode des SDK zurückgegeben werden.This sample uses the count and offset parameters to limit the number of results returned using the SDK's search method. name und url für das erste Ergebnis werden ausgegeben.The name and url for the first result are printed.

  1. Fügen Sie folgenden Code zu Ihrem Python-Projekt hinzu:Add this code to your Python project:

     # Declare the function.
     def web_results_with_count_and_offset(subscription_key):
         client = WebSearchAPI(CognitiveServicesCredentials(subscription_key))
    
         try:
             '''
             Set the query, offset, and count using the SDK's search method. See:
             https://docs.microsoft.com/python/api/azure-cognitiveservices-search-websearch/azure.cognitiveservices.search.websearch.operations.weboperations?view=azure-python.
             '''
             web_data = client.web.search(query="Best restaurants in Seattle", offset=10, count=20)
             print("\r\nSearching for \"Best restaurants in Seattle\"")
    
             if web_data.web_pages.value:
                 '''
                 If web pages are available, print the # of responses, and the first and second
                 web pages returned.
                 '''
                 print("Webpage Results#{}".format(len(web_data.web_pages.value)))
    
                 first_web_page = web_data.web_pages.value[0]
                 print("First web page name: {} ".format(first_web_page.name))
                 print("First web page URL: {} ".format(first_web_page.url))
    
             else:
                 print("Didn't find any web pages...")
    
         except Exception as err:
             print("Encountered exception. {}".format(err))
    
  2. Führen Sie das Programm aus.Run the program.

Filtern nach Nachrichten und AktualitätFilter for news and freshness

In diesem Beispiel werden die Parameter response_filter und freshness verwendet, um Suchergebnisse mithilfe der search-Methode des SDK zu filtern.This sample uses the response_filter and freshness parameters to filter search results using the SDK's search method. Die zurückgegebenen Suchergebnisse sind auf Nachrichtenartikel und -seiten beschränkt, die von Bing in den letzten 24 Stunden gefunden wurden.The search results returned are limited to news articles and pages that Bing has discovered within the last 24 hours. name und url für das erste Ergebnis werden ausgegeben.The name and url for the first result are printed.

  1. Fügen Sie folgenden Code zu Ihrem Python-Projekt hinzu:Add this code to your Python project:

    # Declare the function.
    def web_search_with_response_filter(subscription_key):
        client = WebSearchAPI(CognitiveServicesCredentials(subscription_key))
        try:
            '''
            Set the query, response_filter, and freshness using the SDK's search method. See:
            https://docs.microsoft.com/python/api/azure-cognitiveservices-search-websearch/azure.cognitiveservices.search.websearch.operations.weboperations?view=azure-python.
            '''
            web_data = client.web.search(query="xbox",
                response_filter=["News"],
                freshness="Day")
            print("\r\nSearching for \"xbox\" with the response filter set to \"News\" and freshness filter set to \"Day\".")
    
            '''
            If news articles are available, print the # of responses, and the first and second
            articles returned.
            '''
            if web_data.news.value:
    
                print("# of news results: {}".format(len(web_data.news.value)))
    
                first_web_page = web_data.news.value[0]
                print("First article name: {} ".format(first_web_page.name))
                print("First article URL: {} ".format(first_web_page.url))
    
                print("")
    
                second_web_page = web_data.news.value[1]
                print("\nSecond article name: {} ".format(second_web_page.name))
                print("Second article URL: {} ".format(second_web_page.url))
    
            else:
                print("Didn't find any news articles...")
    
        except Exception as err:
            print("Encountered exception. {}".format(err))
    
    # Call the function.
    web_search_with_response_filter(subscription_key)
    
  2. Führen Sie das Programm aus.Run the program.

Verwenden der Filter für sichere Suche, Antwortanzahl und HöherstufenUse safe search, answer count, and the promote filter

In diesem Beispiel werden die Parameter answer_count, promote und safe_search verwendet, um Suchergebnisse mithilfe der search-Methode des SDK zu filtern.This sample uses the answer_count, promote, and safe_search parameters to filter search results using the SDK's search method. name und url für das erste Ergebnis werden angezeigt.The name and url for the first result are displayed.

  1. Fügen Sie folgenden Code zu Ihrem Python-Projekt hinzu:Add this code to your Python project:

    # Declare the function.
    def web_search_with_answer_count_promote_and_safe_search(subscription_key):
    
        client = WebSearchAPI(CognitiveServicesCredentials(subscription_key))
    
        try:
            '''
            Set the query, answer_count, promote, and safe_search parameters using the SDK's search method. See:
            https://docs.microsoft.com/python/api/azure-cognitiveservices-search-websearch/azure.cognitiveservices.search.websearch.operations.weboperations?view=azure-python.
            '''
            web_data = client.web.search(
                query="Niagara Falls",
                answer_count=2,
                promote=["videos"],
                safe_search=SafeSearch.strict  # or directly "Strict"
            )
            print("\r\nSearching for \"Niagara Falls\"")
    
            '''
            If results are available, print the # of responses, and the first result returned.
            '''
            if web_data.web_pages.value:
    
                print("Webpage Results#{}".format(len(web_data.web_pages.value)))
    
                first_web_page = web_data.web_pages.value[0]
                print("First web page name: {} ".format(first_web_page.name))
                print("First web page URL: {} ".format(first_web_page.url))
    
            else:
                print("Didn't see any Web data..")
    
        except Exception as err:
            print("Encountered exception. {}".format(err))
    
  2. Führen Sie das Programm aus.Run the program.

Bereinigen von RessourcenClean up resources

Wenn Sie mit diesem Projekt fertig sind, entfernen Sie unbedingt den Abonnementschlüssel aus dem Programmcode, und deaktivieren Sie die virtuelle Umgebung.When you're done with this project, make sure to remove your subscription key from the program's code and to deactivate your virtual environment.

Nächste SchritteNext steps

Weitere InformationenSee also