Webbskrapning och botutveckling · Lektion

Integrera med API:er

Anslut era botar till externa API:er för att berika data, utlösa åtgärder eller interagera med andra tjänster.

Lektion 3 av 411 steg

Integrera med API:er är en gratis lektion i Webbskrapning och botutveckling på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Webbskrapning och botutveckling, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Webbskrapning och botutveckling innehåller totalt 4 lektioner.

Bottar och API:er: en kraftfull kombination

Ni har lärt er att automatisera webbläsarinteraktioner och samla in data från webbsidor. Men vad gör ni om ni behöver strukturerad data eller vill utlösa åtgärder i en annan tjänst?

Det är här API:er (Application Programming Interfaces) kommer in! API:er ger boten ett direkt och strukturerat sätt att kommunicera med andra programvarusystem.

API:er jämfört med web scraping

Web scraping innebär att HTML från webbsidor tolkas, medan API:er erbjuder data i ett format som är lättare för maskiner att läsa, vanligtvis JSON eller XML.

  • Web scraping: Bäst för offentliga data på webbplatser utan API:er eller för komplexa interaktioner med användargränssnitt.
  • API-integrering: Idealisk för strukturerad data, för att utföra åtgärder, till exempel skapa ett inlägg, och när ett API uttryckligen tillhandahålls.

Ofta kombinerar de mest kraftfulla bottarna båda metoderna!

API-grunder: endpoints och metoder

API:er nås via endpoints, som är specifika URL:er. Ni interagerar med dem genom standardiserade HTTP-metoder:

  • GET: För att hämta data, till exempel läsa ett inlägg.
  • POST: För att skicka nya data, till exempel skapa ett inlägg.
  • PUT/PATCH: För att uppdatera befintliga data.
  • DELETE: För att ta bort data.

För bottar är GET och POST vanligast.

Skicka en enkel GET-begäran

Vi använder Pythons bibliotek requests för att hämta data från ett offentligt test-API. Vi använder jsonplaceholder.typicode.com, som tillhandahåller exempeldata.

Prova att köra det här exemplet:

import requests

def main():
    api_url = "https://jsonplaceholder.typicode.com/todos/1"
    response = requests.get(api_url)
    
    print(f"Status Code: {response.status_code}")
    print(response.text)

if __name__ == "__main__":
    main()

Tolka JSON-svar

API:er returnerar vanligtvis data i formatet JSON (JavaScript Object Notation). Det är ett lättviktigt och människoläsbart format för datautbyte.

Biblioteket requests kan automatiskt tolka JSON åt er och omvandla det till en Python-ordlista. Vi extraherar specifika fält från föregående exempel.

import requests
import json

def main():
    api_url = "https://jsonplaceholder.typicode.com/todos/1"
    response = requests.get(api_url)
    
    if response.status_code == 200:
        todo_item = response.json() # Parse JSON into a Python dict
        print(f"User ID: {todo_item['userId']}")
        print(f"Title: {todo_item['title']}")
        print(f"Completed: {todo_item['completed']}")
    else:
        print("Failed to fetch data.")

if __name__ == "__main__":
    main()

Grundläggande begrepp inom API-autentisering

Många API:er kräver autentisering för att säkerställa att endast behöriga användare eller bottar kan komma åt deras data eller tjänster. Vanliga metoder är:

  • API-nycklar: En unik sträng som skickas med varje begäran.
  • Tokens: Skapas ofta efter en inloggning och är giltiga under en viss period.
  • OAuth: En mer komplex standard för säker delegering av åtkomst.

För enkla bottar används ofta API-nycklar.

Använd API-nycklar i begäranden

API-nycklar skickas vanligtvis som en frågeparameter i URL:en eller som en HTTP-header. requests gör detta enkelt med argumentet params.

Det här exemplet visar hur du skickar en nyckel (med ett fiktivt API i demonstrationssyfte).

import requests

def main():
    # This is a placeholder for demonstration.
    # In a real scenario, use a valid API key.
    api_key = "YOUR_DUMMY_API_KEY_HERE"
    search_term = "bot automation"
    
    # Fictional API endpoint requiring a key
    api_url = "https://api.example.com/search"
    
    params = {
        "q": search_term,
        "apiKey": api_key # API key as a query parameter
    }
    
    response = requests.get(api_url, params=params)
    print(f"Request URL: {response.url}")
    print(f"Status Code: {response.status_code}")
    # In a real app, you'd process response.json()

if __name__ == "__main__":
    main()

Skicka data med POST-begäranden

Om din bot behöver skicka data, till exempel skapa en ny post eller uppdatera information, använder du en POST-begäran. Datainnehållet skickas vanligtvis i begärans body.

requests hanterar automatiskt sändning av JSON-data i bodyn med parametern json.

import requests
import json

def main():
    api_url = "https://jsonplaceholder.typicode.com/posts"
    
    new_post_data = {
        "title": "Bot-Generated Post",
        "body": "This is content created by our bot!",
        "userId": 1
    }
    
    # The 'json' parameter automatically sets Content-Type
    response = requests.post(api_url, json=new_post_data)
    
    print(f"Status Code: {response.status_code}")
    if response.status_code == 201: # 201 Created is common for successful POST
        print("Post created successfully!")
        print(response.json()) # API returns the created item
    else:
        print("Failed to create post.")
        print(response.text)

if __name__ == "__main__":
    main()

Robust felhantering för API:er

API-anrop kan misslyckas på grund av nätverksproblem, felaktiga begäranden eller serverfel. Din bot bör hantera detta på ett smidigt sätt.

  • Kontrollera response.status_code (till exempel 200 för OK, 404 för Hittades inte och 500 för serverfel).
  • Använd response.raise_for_status() för att automatiskt utlösa ett HTTPError vid felaktiga svar.
  • Omge anropen med try-except-block för att fånga nätverksrelaterade fel.
import requests

def main():
    # Intentional bad URL to show error handling
    api_url = "https://jsonplaceholder.typicode.com/nonexistent_endpoint"
    
    try:
        response = requests.get(api_url, timeout=5) # Set a timeout
        response.raise_for_status() # Raises HTTPError for 4xx/5xx responses
        print(f"Status Code: {response.status_code}")
        print("Successfully fetched data.")
    except requests.exceptions.HTTPError as err:
        print(f"HTTP Error occurred: {err}")
        print(f"Status Code: {response.status_code}")
    except requests.exceptions.ConnectionError as err:
        print(f"Connection Error occurred: {err}")
    except requests.exceptions.Timeout as err:
        print(f"Timeout Error occurred: {err}")
    except requests.exceptions.RequestException as err:
        print(f"An unexpected error occurred: {err}")

if __name__ == "__main__":
    main()

Snabbtest: API-interaktion

Vilka av följande är vanliga sätt för botar att interagera med API:er?

Sammanfattning och nästa steg

Bra jobbat! Du har lärt dig att integrera dina botar med API:er:

  • API:er tillhandahåller strukturerade data och låter botar utlösa åtgärder.
  • Du använder GET för att hämta data och POST för att skicka data.
  • Pythons requests-bibliotek förenklar API-anrop.
  • JSON är det vanligaste dataformatet och kan enkelt tolkas till Python-dictionaries.
  • Autentisering, till exempel med API-nycklar, är avgörande för många API:er.
  • Robust felhantering är viktigt för tillförlitlig drift av botar.

Genom att kombinera web scraping med API-integration kan dina botar utföra mer komplexa och kraftfulla arbetsflöden!

Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Integrera med API:er” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Webbskrapning och botutveckling, inklusive ”Integrera med API:er”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Webbskrapning och botutveckling innehåller totalt 4 lektioner.

Vad lär jag mig i ”Integrera med API:er”?

Anslut era botar till externa API:er för att berika data, utlösa åtgärder eller interagera med andra tjänster. Ni övar på Webbskrapning och botutveckling med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Webbskrapning och botutveckling?

Du behöver inga förkunskaper. Utbildningen i Webbskrapning och botutveckling på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Integrera med API:er”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Webbskrapning och botutveckling-lektionen?

Ja. Varje Webbskrapning och botutveckling-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Hantera användarautentisering
  2. Simulera komplexa användarresor
  3. Integrera med API:er
  4. Hantera sessioner och cookies
← Tillbaka till Webbskrapning och botutveckling