Webscraping og botudvikling · Lektion

Planlægning af grundlæggende opgaver

Implementer enkle planlægningsmekanismer, så Deres bots kører med bestemte intervaller og automatiseringen fortsætter.

Lektion 3 af 411 trin

Planlægning af grundlæggende opgaver er en gratis Webscraping og botudvikling-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Webscraping og botudvikling, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Webscraping og botudvikling-kurset indeholder 4 lektioner i alt.

Hvorfor planlægge din bot?

Har du nogensinde ønsket, at din bot kunne køre af sig selv, uden at du trykker på "Kør"? Det er her, planlægning kommer ind i billedet!

Planlægning gør det muligt for din bot at udføre opgaver automatisk på bestemte tidspunkter eller med bestemte intervaller. Det er især nyttigt til:

  • Overvågning: Kontrol af en webside hver time for opdateringer.
  • Dataindsamling: Daglig indsamling af nyhedsartikler.
  • Notifikationer: Afsendelse af advarsler, når en pris ændrer sig.

Lad os lære, hvordan du får din bot til at arbejde efter sin egen tidsplan.

Sæt din bot på pause med `time.sleep()`

Den enkleste måde at indføre en forsinkelse i din Python-bot på er at bruge funktionen time.sleep(). Den sætter programmet på pause i et angivet antal sekunder.

Det er praktisk, når du vil vente mellem forespørgsler for ikke at overbelaste en server, eller når du bare vil sænke hastigheden.

Prøv dette enkle eksempel:

import time

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

if __name__ == "__main__":
    main()

Gentagelse af opgaver

Hvis du vil have din bot til at gøre noget gentagne gange, kan du kombinere time.sleep() med en while-løkke. Det skaber en grundlæggende, kontinuerlig kørsel.

Din bot udfører opgaven, holder pause og gentager derefter processen uendeligt (eller indtil du stopper den).

Vær forsigtig med uendelige løkker i rigtige bots – du skal have en måde at stoppe dem på!

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

Når `time.sleep()` ikke er nok

Selvom en while-løkke med time.sleep() fungerer til simpel gentagelse, har den begrænsninger:

  • Blokering: Hele programmet sættes på pause. Hvis du har andre ting, der skal udføres, stopper de også.
  • Faste intervaller: Det er svært at planlægge opgaver på bestemte klokkeslæt (f.eks. "hver dag kl. 9") i stedet for blot "hver X. sekund".
  • Kompleksitet: Håndtering af flere forskellige tidsplaner bliver rodet.

Hvis du har brug for mere avanceret planlægning, skal vi bruge et bedre værktøj.

Mød `schedule`-biblioteket

Til mere fleksibel og læsevenlig planlægning i Python er biblioteket schedule et populært valg. Det lader dig definere opgaver og deres tidsplaner på en meget intuitiv måde.

Først skal du installere det:

  • pip install schedule

Når det er installeret, kan du angive præcis, hvornår funktionerne skal køres.

Planlægning af en fremtidig opgave

Biblioteket schedule gør det nemt at køre en funktion efter en bestemt forsinkelse. Du angiver, hvor ofte den skal køres, og hvilken funktion der skal kaldes.

Lad os oprette en enkel funktion og planlægge, at den skal køre én gang efter nogle få sekunder.

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

Opsætning af gentagne opgaver

Den virkelige styrke ved schedule ligger i definitionen af gentagne opgaver. Du kan planlægge opgaver til at køre hvert sekund, minut, time eller dag eller på bestemte ugedage.

Her er nogle eksempler på, hvordan du kan definere gentagne tidsplaner:

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

Det er meget fleksibelt!

Kørsel af din planlagte bot

Når du har defineret dine planlagte opgaver, skal du have en måde, hvorpå biblioteket schedule hele tiden kan kontrollere, om nogle opgaver skal køres. Det gøres med en enkel løkke.

Funktionen schedule.run_pending() kontrollerer opgaverne, og time.sleep() sikrer, at din bot ikke hele tiden er optaget af at kontrollere dem.

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

Ud over planlægning i botten

Selvom biblioteket schedule er velegnet til enkel planlægning i processen, bruger bots i stor skala eller med kritiske funktioner ofte eksterne værktøjer til planlægning.

  • Cron (Linux/macOS): Et effektivt kommandolinjeværktøj til planlægning af opgaver.
  • Task Scheduler (Windows): Et indbygget værktøj til automatisering af opgaver.
  • Cloud Schedulers: Tjenester som AWS EventBridge eller Google Cloud Scheduler til cloudbaserede bots.

Disse værktøjer kan selv starte dit Python-script og giver dermed større robusthed og kontrol på systemniveau.

Planlæg det!

Du har lært om forskellige måder at planlægge opgaver for din bot på. Nu kan du teste din forståelse!

Opsummering: Planlægning af dine bots

Godt gået! Du har lært det grundlæggende om planlægning i Python. Vi gennemgik:

  • Brug af time.sleep() til enkle pauser og grundlæggende løkker til gentagelse.
  • Begrænsningerne ved enkle løkker til kompleks planlægning.
  • Sådan du bruger det effektive bibliotek schedule til fleksibel håndtering af opgaver.
  • Vigtigheden af løkken schedule.run_pending().
  • En kort omtale af eksterne værktøjer til planlægning af bots i produktion.

Nu kan dine bots virkelig arbejde for dig, selv når du ikke er til stede!

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Planlægning af grundlæggende opgaver” gratis?

Ja — alle 3 lektioner i læringssporet Webscraping og botudvikling, inklusive “Planlægning af grundlæggende opgaver”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Webscraping og botudvikling-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Planlægning af grundlæggende opgaver”?

Implementer enkle planlægningsmekanismer, så Deres bots kører med bestemte intervaller og automatiseringen fortsætter. Du øver dig i Webscraping og botudvikling med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Webscraping og botudvikling?

Der kræves ingen tidligere erfaring. Webscraping og botudvikling på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Planlægning af grundlæggende opgaver”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Webscraping og botudvikling-lektion?

Ja. Alle Webscraping og botudvikling-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Definition af botmål
  2. Automatisering af enkle formularindsendelser
  3. Planlægning af grundlæggende opgaver
  4. Logging og fejlhåndtering for bots
← Tilbage til Webscraping og botudvikling