0Pricing
Web Scraping & Bots · 课时

安排基础任务

实施简单的调度机制,让机器人按指定时间间隔运行,实现持续自动化。

安排基础任务 是 CoddyKit 上的免费 Web Scraping & Bots 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Web Scraping & Bots 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Web Scraping & Bots 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

Why Schedule Your Bot?

Ever wished your bot could run itself without you pressing "Go"? That's where scheduling comes in!

Scheduling allows your bot to perform tasks automatically at specific times or intervals. This is super useful for:

  • Monitoring: Checking a website every hour for updates.
  • Data Collection: Scraping news articles daily.
  • Notifications: Sending alerts when a price changes.

Let's learn how to make your bot work on its own schedule.

Pausing Your Bot with `time.sleep()`

The simplest way to introduce a delay in your Python bot is using the time.sleep() function. It pauses your program for a specified number of seconds.

This is great for waiting between requests to avoid overwhelming a server, or just to slow things down.

Try this simple example:

import time

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

if __name__ == "__main__":
    main()

Making Tasks Repeat

To make your bot do something repeatedly, you can combine time.sleep() with a while loop. This creates a basic, continuous operation.

Your bot will execute the task, pause, and then repeat indefinitely (or until you stop it).

Be careful with infinite loops in real bots – you'll need a way to stop them!

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

When `time.sleep()` Isn't Enough

While a while loop with time.sleep() works for simple repetition, it has limitations:

  • Blocking: The entire program pauses. If you have other things to do, they also stop.
  • Fixed Intervals: It's hard to schedule tasks at specific clock times (e.g., "every day at 9 AM") rather than just "every X seconds."
  • Complexity: Managing multiple, different schedules becomes messy.

For more sophisticated scheduling, we need a better tool.

Meet the `schedule` Library

For more flexible and readable scheduling within Python, the schedule library is a popular choice. It lets you define tasks and their schedules in a very intuitive way.

First, you need to install it:

  • pip install schedule

Once installed, you can tell it exactly when to run your functions.

Scheduling a Task for the Future

The schedule library makes it easy to run a function after a certain delay. You tell it how often, and what function to call.

Let's create a simple function and schedule it to run once after a few seconds.

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

Setting Up Recurring Tasks

The real power of schedule comes from defining recurring tasks. You can schedule tasks to run every second, minute, hour, day, or even specific days of the week.

Here are some examples of how you can define recurring schedules:

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

It's very flexible!

Running Your Scheduled Bot

After you've defined your scheduled tasks, you need a way for the schedule library to constantly check if any tasks are due to run. This is done with a simple loop.

The schedule.run_pending() function checks for tasks, and time.sleep() ensures your bot isn't constantly busy checking.

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

Beyond In-Bot Scheduling

While the schedule library is great for simple, in-process scheduling, large-scale or mission-critical bots often use external scheduling tools.

  • Cron (Linux/macOS): A powerful command-line utility for scheduling tasks.
  • Task Scheduler (Windows): A built-in tool for automating tasks.
  • Cloud Schedulers: Services like AWS EventBridge or Google Cloud Scheduler for cloud-based bots.

These tools can start your Python script itself, offering more robustness and system-level control.

Schedule It!

You've learned about different ways to schedule tasks for your bot. Now, let's test your understanding!

Recap: Scheduling Your Bots

Great job! You've mastered the basics of scheduling in Python. We covered:

  • Using time.sleep() for simple pauses and basic loops for repetition.
  • The limitations of simple loops for complex scheduling.
  • How to use the powerful schedule library for flexible task management.
  • The importance of the schedule.run_pending() loop.
  • A brief mention of external scheduling tools for production bots.

Now your bots can truly work for you, even when you're away!

常见问题解答

「安排基础任务」课时是免费的吗?

是的 — 「安排基础任务」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Web Scraping & Bots 课程的其余内容,请升级到 CoddyKit PRO。 Web Scraping & Bots 课程共包含 4 节课。

「安排基础任务」这节课中我会学到什么?

实施简单的调度机制,让机器人按指定时间间隔运行,实现持续自动化。 你通过在浏览器中直接运行的动手代码来练习 Web Scraping & Bots,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Web Scraping & Bots 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Web Scraping & Bots 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「安排基础任务」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Web Scraping & Bots 课中编写并运行代码吗?

能。每节 Web Scraping & Bots 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 定义机器人目标
  2. 自动提交简单表单
  3. 安排基础任务
  4. 机器人日志记录与错误处理
← 返回 Web Scraping & Bots