Webscraping en bots · Les

Basistaken plannen

Implementeer eenvoudige planningsmechanismen om uw bots met specifieke tussenpozen uit te voeren voor continue automatisering.

Les 3 van 411 stappen

Basistaken plannen 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.

Waarom je bot plannen?

Heb je ooit gewenst dat je bot vanzelf kon werken zonder dat je op "Start" hoefde te drukken? Daar komt plannen om de hoek kijken!

Met plannen kan je bot taken automatisch op specifieke tijdstippen of met bepaalde tussenpozen uitvoeren. Dat is bijzonder handig voor:

  • Monitoren: Elk uur een website controleren op updates.
  • Gegevens verzamelen: Dagelijks nieuwsartikelen ophalen.
  • Meldingen: Waarschuwingen versturen wanneer een prijs verandert.

We leren hoe je je bot volgens een eigen planning laat werken.

Je bot pauzeren met `time.sleep()`

De eenvoudigste manier om een vertraging in je Python-bot in te bouwen, is de functie time.sleep() te gebruiken. Deze pauzeert je programma gedurende een opgegeven aantal seconden.

Dit is handig om tussen aanvragen te wachten en zo een server niet te zwaar te belasten, of om processen gewoon te vertragen.

Probeer dit eenvoudige voorbeeld:

import time

def main():
    print("Starting task...")
    time.sleep(2) # Pause for 2 seconds
    print("Task finished after delay.")

if __name__ == "__main__":
    main()

Taken herhalen

Om je bot iets herhaaldelijk te laten doen, kun je time.sleep() combineren met een while-lus. Zo ontstaat een eenvoudige, doorlopende werking.

Je bot voert de taak uit, wacht en herhaalt dit vervolgens onbeperkt (of totdat je hem stopt).

Wees voorzichtig met oneindige lussen in echte bots: je hebt een manier nodig om ze te stoppen!

import time

def main():
    counter = 0
    while counter < 3: # Run 3 times for demo
        print(f"Bot is running task {counter + 1}...")
        time.sleep(3) # Wait 3 seconds
        counter += 1
    print("Bot finished its scheduled runs.")

if __name__ == "__main__":
    main()

Wanneer `time.sleep()` niet genoeg is

Hoewel een while-lus met time.sleep() werkt voor eenvoudige herhalingen, heeft deze beperkingen:

  • Blokkerend: Het hele programma wordt gepauzeerd. Als er andere dingen moeten gebeuren, stoppen die ook.
  • Vaste tussenpozen: Het is lastig om taken op specifieke tijdstippen in te plannen (bijvoorbeeld "elke dag om 9.00 uur") in plaats van alleen "elke X seconden".
  • Complexiteit: Het beheren van meerdere, verschillende planningen wordt onoverzichtelijk.

Voor geavanceerdere planningen hebben we een beter hulpmiddel nodig.

Maak kennis met de `schedule`-bibliotheek

Voor flexibeler en beter leesbaar plannen binnen Python is de schedule-bibliotheek een populaire keuze. Hiermee kun je taken en hun planningen op een zeer intuïtieve manier definiëren.

Eerst moet je de bibliotheek installeren:

  • pip install schedule

Na de installatie kun je precies aangeven wanneer je functies moeten worden uitgevoerd.

Een taak voor later plannen

Met de schedule-bibliotheek kun je eenvoudig een functie na een bepaalde vertraging uitvoeren. Je geeft aan hoe vaak de functie moet worden uitgevoerd en welke functie moet worden aangeroepen.

We maken een eenvoudige functie en plannen deze zo dat hij één keer na enkele seconden wordt uitgevoerd.

import schedule
import time

def my_task():
    print("This task ran as scheduled!")

def main():
    print("Scheduling task to run in 5 seconds...")
    schedule.every(5).seconds.do(my_task)

    # This loop keeps the scheduler running
    start_time = time.time()
    while True:
        schedule.run_pending()
        time.sleep(1) # Check every second
        # For this demo, let's stop after 6 seconds
        if time.time() > start_time + 6:
            break
    print("Scheduler stopped.")

if __name__ == "__main__":
    main()

Terugkerende taken instellen

De echte kracht van schedule zit in het definiëren van terugkerende taken. Je kunt taken elke seconde, minuut, uur of dag laten uitvoeren, of op specifieke dagen van de week.

Hier volgen enkele voorbeelden van terugkerende planningen:

  • schedule.every(10).minutes.do(job)
  • schedule.every().hour.do(job)
  • schedule.every().day.at("10:30").do(job)
  • schedule.every().monday.do(job)
  • schedule.every().wednesday.at("13:15").do(job)

Dit is zeer flexibel!

Je geplande bot uitvoeren

Nadat je je geplande taken hebt gedefinieerd, heb je een manier nodig waarop de schedule-bibliotheek voortdurend kan controleren of er taken moeten worden uitgevoerd. Dit doe je met een eenvoudige lus.

De functie schedule.run_pending() controleert op taken en time.sleep() zorgt ervoor dat je bot niet voortdurend bezig is met controleren.

import schedule
import time

def scrape_news():
    print("Scraping news headlines...")
    # In a real bot, this would fetch data
    print("News scraped at", time.strftime("%H:%M:%S"))

def check_price_alert():
    print("Checking for price drops...")
    # In a real bot, this would check prices
    print("Price check at", time.strftime("%H:%M:%S"))

def main():
    print("Bot is starting. Tasks scheduled.")
    schedule.every(5).seconds.do(scrape_news)
    schedule.every(10).seconds.do(check_price_alert)

    # Main loop to run pending tasks
    start_time = time.time()
    while True:
        schedule.run_pending()
        time.sleep(1) # Check every second
        if time.time() - start_time > 25: # Run for 25 seconds for demo
            break
    print("Bot finished its scheduled operations for the demo.")

if __name__ == "__main__":
    main()

Verder dan plannen in de bot

Hoewel de bibliotheek schedule uitstekend is voor eenvoudige planning binnen één proces, gebruiken bots op grote schaal of voor bedrijfskritieke toepassingen vaak externe planningstools.

  • Cron (Linux/macOS): Een krachtig opdrachtregelprogramma om taken te plannen.
  • Taakplanner (Windows): Een ingebouwde tool om taken te automatiseren.
  • Cloudplanners: Diensten zoals AWS EventBridge of Google Cloud Scheduler voor bots in de cloud.

Deze tools kunnen uw Python-script rechtstreeks starten, wat meer robuustheid en controle op systeemniveau biedt.

Plan het!

Je hebt verschillende manieren geleerd om taken voor je bot te plannen. Nu gaan we je begrip testen!

Samenvatting: je bots plannen

Goed gedaan! Je beheerst de basis van plannen in Python. We hebben behandeld:

  • time.sleep() gebruiken voor eenvoudige pauzes en basislussen voor herhaling.
  • De beperkingen van eenvoudige lussen voor complexe planning.
  • Hoe je de krachtige bibliotheek schedule gebruikt voor flexibel taakbeheer.
  • Het belang van de lus met schedule.run_pending().
  • Een korte kennismaking met externe planningstools voor bots in productie.

Nu kunnen je bots echt voor je werken, zelfs als je er niet bent!

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 “Basistaken plannen” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Webscraping en bots, waaronder “Basistaken plannen”, 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 “Basistaken plannen”?

Implementeer eenvoudige planningsmechanismen om uw bots met specifieke tussenpozen uit te voeren voor continue automatisering. 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 “Basistaken plannen”?

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. Doelstellingen van bots definiëren
  2. Eenvoudige formulierverzendingen automatiseren
  3. Basistaken plannen
  4. Logging en foutafhandeling voor bots
← Terug naar Webscraping en bots