Snabbstart: Använda SDK för Webbsökning i Bing för PythonQuickstart: Use the Bing Web Search SDK for Python

SDK för Webbsökning i Bing gör det enkelt att integrera Webbsökning i Bing i Python-programmet.The Bing Web Search SDK makes it easy to integrate Bing Web Search into your Python application. I den här snabbstarten lär du dig att skicka en begäran, ta emot ett JSON-svar och filtrera och parsa resultaten.In this quickstart, you'll learn how to send a request, receive a JSON response, and filter and parse the results.

Vill du se koden på en gång?Want to see the code right now? Exemplen med SDK för Webbsökning i Bing för Python finns på GitHub.The Bing Web Search SDK for Python samples are available on GitHub.

Den här snabbstarten kräver ett Azure Cognitive Services-konto med API:er för Bing-sökresultat.This quickstart requires an Azure Cognitive Services account with Bing Search APIs. Om du inte har ett konto kan du använda den kostnadsfria utvärderingsversionen för att hämta en prenumerationsnyckel.If you don't have an account, you can use the free trial to get a subscription key.

Se även Priser för Cognitive Services – API för Bing-sökning.See also Cognitive Services Pricing - Bing Search API.

Nödvändiga komponenterPrerequisites

API för webbsökning i Bing är kompatibelt med Python 2.7, 3.3, 3.4, 3.5 och 3.6.The Bing Web Search SDK is compatible with Python 2.7, 3.3, 3.4, 3.5, and 3.6. Vi rekommenderar att du använder en virtuell miljö för den här snabbstarten.We recommend using a virtual environment for this quickstart.

  • Python 2.7, 3.3, 3.4, 3.5 eller 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

Skapa och konfigurera den virtuella miljönCreate and configure your virtual environment

Anvisningarna för att installera och konfigurera en virtuell miljö är olika för Python 2.x och Python 3.x.The instructions to set up and configure a virtual environment are different for Python 2.x and Python 3.x. Följ stegen nedan för att skapa och initiera den virtuella miljön.Follow the steps below to create and initialize your virtual environment.

Python 2.xPython 2.x

Skapa en virtuell miljö med virtualenv för Python 2.7:Create a virtual environment with virtualenv for Python 2.7:

virtualenv mytestenv

Aktivera miljön:Activate your environment:

cd mytestenv
source bin/activate

Installera beroenden för SDK för Webbsökning i Bing:Install Bing Web Search SDK dependencies:

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

Python 3.xPython 3.x

Skapa en virtuell miljö med venv för Python 3.x:Create a virtual environment with venv for Python 3.x:

python -m venv mytestenv

Installera beroenden för SDK för Webbsökning i Bing:Install Bing Web Search SDK dependencies:

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

Skapa en klient och skriva ut dina första resultatCreate a client and print your first results

Nu när du har konfigurerat den virtuella miljön och installerat beroenden tar vi och skapar en klient.Now that you've set up your virtual environment and installed dependencies, let's create a client. Klienten hanterar begäranden till och svar från API för webbsökning i Bing.The client will handle requests to and responses from the Bing Web Search API.

Om svaret innehåller webbplatser, bilder, nyheter eller videor skrivs det första resultatet för vardera ut.If the response contains web pages, images, news, or videos, the first result for each is printed.

  1. Skapa ett nytt Python-projekt med valfri IDE eller redigeringsprogram.Create a new Python project using your favorite IDE or editor.

  2. Kopiera den här exempelkoden till projektet: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. Ersätt SUBSCRIPTION_KEY med en giltig prenumerationsnyckel.Replace SUBSCRIPTION_KEY with a valid subscription key.

  4. Ersätt YOUR_ENDPOINT med slutpunkts-url i portalen.Replace YOUR_ENDPOINT with your endpoint url in portal.

  5. Kör programmet.Run the program. Till exempel: python your_program.py.For example: python your_program.py.

Definiera funktioner och filtrera resultatDefine functions and filter results

Nu när du har gjort din första anropet till Bing Web Search API, vi titta på några funktioner.Now that you've made your first call to the Bing Web Search API, let's look at a few functions. I följande avsnitt beskrivs SDK-funktioner för att förfina frågor och filtrera resultaten.The following sections highlight SDK functionality for refining queries and filtering results. Varje funktion kan läggas till Python-program som du skapade i föregående avsnitt.Each function can be added to the Python program you created in the previous section.

Begränsa antalet resultat som returneras av BingLimit the number of results returned by Bing

I det här exemplet används parametrarna count och offset för att begränsa antalet resultat som returneras med hjälp av SDK:ns search-metod.This sample uses the count and offset parameters to limit the number of results returned using the SDK's search method. name och url för det första resultatet skrivs ut.The name and url for the first result are printed.

  1. Lägg till den här koden i Python-projektet: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. Kör programmet.Run the program.

Filtrera efter nyheter och aktualitetFilter for news and freshness

I det här exemplet används parametrarna response_filter och freshness för att filtrera sökresultat med hjälp av SDK:ns search-metod.This sample uses the response_filter and freshness parameters to filter search results using the SDK's search method. De sökresultat som returneras är begränsade till nyhetsartiklar och sidor som Bing har identifierat under de senaste 24 timmarna.The search results returned are limited to news articles and pages that Bing has discovered within the last 24 hours. name och url för det första resultatet skrivs ut.The name and url for the first result are printed.

  1. Lägg till den här koden i Python-projektet: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. Kör programmet.Run the program.

Använd säker sökning, svarsantal och befordringsfiltretUse safe search, answer count, and the promote filter

I det här exemplet används parametrarna answer_count, promote och safe_search för att filtrera sökresultat med hjälp av SDK:ns search-metod.This sample uses the answer_count, promote, and safe_search parameters to filter search results using the SDK's search method. name och url för det första resultatet visas.The name and url for the first result are displayed.

  1. Lägg till den här koden i Python-projektet: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. Kör programmet.Run the program.

Rensa resurserClean up resources

När du är klar med det här projektet bör du ta bort din prenumerationsnyckel från programmets kod och inaktivera den virtuella miljön.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ästa stegNext steps

Se ocksåSee also