Webscraping en bots · Les

Integratie met API's

Verbind uw bots met externe API's om gegevens aan te vullen, acties te activeren of met andere services te communiceren.

Les 3 van 411 stappen

Integratie met API's is een gratis Webscraping en bots-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Webscraping en bots. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Webscraping en bots bevat in totaal 4 lessen.

Bots en API's: een krachtige combinatie

Je hebt geleerd hoe je browserinteracties automatiseert en webpagina's verzamelt. Maar wat doe je als je gestructureerde gegevens nodig hebt of acties op een andere dienst wilt uitvoeren?

Daar komen API's (Application Programming Interfaces) goed van pas! API's bieden een directe, overzichtelijke manier waarop je bot met andere softwaresystemen kan communiceren.

API's versus webscraping

Bij webscraping ontleed je HTML van webpagina's, terwijl API's gegevens aanbieden in een indeling die machines gemakkelijker kunnen lezen, meestal JSON of XML.

  • Webscraping: Het meest geschikt voor openbare gegevens op websites zonder API's of voor complexe interacties met de gebruikersinterface.
  • API-integratie: Ideaal voor gestructureerde gegevens, het uitvoeren van acties zoals een bericht plaatsen en situaties waarin expliciet een API beschikbaar is.

Vaak combineren de krachtigste bots beide technieken!

API-basis: eindpunten en methoden

Je benadert API's via eindpunten, specifieke URL's. Je gebruikt hiervoor standaard-HTTP-methoden:

  • GET: Gegevens ophalen, bijvoorbeeld een bericht lezen.
  • POST: Nieuwe gegevens versturen, bijvoorbeeld een bericht maken.
  • PUT/PATCH: Bestaande gegevens bijwerken.
  • DELETE: Gegevens verwijderen.

Voor bots zijn GET en POST het gebruikelijkst.

Een eenvoudig GET-verzoek versturen

We gebruiken de Python-bibliotheek requests om gegevens op te halen uit een openbare test-API. We gebruiken jsonplaceholder.typicode.com, die voorbeeldgegevens aanbiedt.

Probeer dit voorbeeld uit te voeren:

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()

JSON-antwoorden parseren

API's geven gegevens vaak terug in de indeling JSON (JavaScript Object Notation). Dit is een lichtgewicht, voor mensen leesbare indeling voor gegevensuitwisseling.

De bibliotheek requests kan JSON automatisch voor je parseren en omzetten in een Python-woordenboek. We halen specifieke velden uit ons vorige voorbeeld.

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()

Concepten van API-authenticatie

Veel API's vereisen authenticatie om ervoor te zorgen dat alleen bevoegde gebruikers of bots toegang krijgen tot hun gegevens of diensten. Veelgebruikte methoden zijn:

  • API-sleutels: Een unieke tekenreeks die met elk verzoek wordt meegestuurd.
  • Tokens: Vaak gegenereerd na een login en gedurende een bepaalde periode geldig.
  • OAuth: Een complexere standaard voor het veilig delegeren van toegang.

Voor eenvoudige bots worden vaak API-sleutels gebruikt.

API-sleutels gebruiken in verzoeken

API-sleutels worden doorgaans als queryparameter in de URL of als HTTP-header meegestuurd. requests maakt dit eenvoudig met het argument params.

In dit voorbeeld zie je hoe je een sleutel zou meesturen (met een fictieve API ter demonstratie).

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()

Gegevens verzenden met POST-verzoeken

Als je bot gegevens moet indienen, bijvoorbeeld om een nieuwe vermelding te maken of informatie bij te werken, gebruik je een POST-verzoek. De gegevens worden doorgaans in de hoofdtekst van het verzoek meegestuurd.

requests verwerkt het verzenden van JSON-gegevens in de hoofdtekst automatisch met de parameter 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()

Robuuste foutafhandeling voor API's

API-aanroepen kunnen mislukken door netwerkproblemen, onjuiste verzoeken of serverfouten. Je bot moet hier netjes mee omgaan.

  • Controleer response.status_code (bijvoorbeeld 200 voor OK, 404 voor Niet gevonden en 500 voor Serverfout).
  • Gebruik response.raise_for_status() om automatisch een HTTPError te genereren voor ongeldige antwoorden.
  • Gebruik try-except-blokken rond aanroepen om netwerkgerelateerde fouten op te vangen.
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()

Snelle controle: werken met API's

Welke van de volgende manieren zijn gebruikelijk voor bots om met API's te communiceren?

Samenvatting en volgende stappen

Goed gedaan! Je hebt geleerd hoe je je bots met API's integreert:

  • API's leveren gestructureerde gegevens en stellen bots in staat acties uit te voeren.
  • Je gebruikt GET om gegevens op te halen en POST om gegevens te verzenden.
  • De Python-bibliotheek requests vereenvoudigt API-aanroepen.
  • JSON is de gebruikelijke indeling voor gegevens en kan eenvoudig worden omgezet in Python-woordenboeken.
  • Authenticatie, zoals API-sleutels, is voor veel API's essentieel.
  • Robuuste foutafhandeling is belangrijk voor betrouwbare botbewerkingen.

Door webscraping te combineren met API-integratie kunnen je bots complexere en krachtigere werkstromen uitvoeren!

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Integratie met API's” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Webscraping en bots, waaronder “Integratie met API's”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Webscraping en bots bevat in totaal 4 lessen.

Wat leer ik in “Integratie met API's”?

Verbind uw bots met externe API's om gegevens aan te vullen, acties te activeren of met andere services te communiceren. Je oefent met Webscraping en bots door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Webscraping en bots te beginnen?

Ervaring vooraf is niet nodig. Webscraping en bots op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Integratie met API's”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Webscraping en bots?

Ja. Elke les over Webscraping en bots bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Gebruikersauthenticatie verwerken
  2. Complexe gebruikersreizen simuleren
  3. Integratie met API's
  4. Sessies en cookies beheren
← Terug naar Webscraping en bots