You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写程序自动定时下载指定高频更新网站的HTML文件?

实现定时自动下载网页HTML文件的几种方法

方法一:Python脚本(灵活易扩展)

用Python可以快速实现带定时功能的网页下载,还能轻松处理反爬、登录态等复杂场景。

先安装依赖:pip install requests

然后写脚本:

import requests
import time
from datetime import datetime

# 替换成你要监控的网站地址
TARGET_URL = "https://example.com"
# 定时间隔,单位秒(5分钟就是300秒)
INTERVAL = 300
# 模拟浏览器请求头,避免被网站拦截
HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}

def save_html():
    try:
        # 发送请求获取网页内容
        response = requests.get(TARGET_URL, headers=HEADERS)
        response.raise_for_status()  # 请求失败时抛出异常
        
        # 用当前时间做文件名,避免覆盖旧文件
        timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
        filename = f"page_backup_{timestamp}.html"
        
        # 写入本地文件
        with open(filename, "w", encoding="utf-8") as f:
            f.write(response.text)
        print(f"已保存: {filename}")
    except Exception as e:
        print(f"下载出错: {str(e)}")

if __name__ == "__main__":
    print(f"开始每隔{INTERVAL//60}分钟下载一次网页...")
    while True:
        save_html()
        time.sleep(INTERVAL)

方法二:Shell脚本 + Cron(Linux/macOS轻量方案)

如果是Linux或macOS用户,用系统自带的工具就能搞定,不用额外装软件。

  1. 写一个下载脚本page_downloader.sh:
#!/bin/bash
# 目标网站地址
TARGET_URL="https://example.com"
# 文件保存目录,自动创建不存在的目录
SAVE_DIR="./page_backups"
mkdir -p "$SAVE_DIR"
# 生成带时间戳的文件名
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
FILENAME="$SAVE_DIR/page_$TIMESTAMP.html"

# 用curl请求网页,模拟浏览器
curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "$TARGET_URL" -o "$FILENAME"

# 检查是否保存成功
if [ -f "$FILENAME" ]; then
    echo "已备份: $FILENAME"
else
    echo "备份失败"
fi
  1. 给脚本加执行权限:chmod +x page_downloader.sh

  2. 设置定时任务:
    输入crontab -e,添加一行(比如每5分钟执行一次):

*/5 * * * * /full/path/to/page_downloader.sh

保存退出后,Cron会自动后台运行定时任务。

方法三:PowerShell脚本 + 任务计划程序(Windows专属)

Windows用户可以用PowerShell写脚本,配合系统的任务计划程序实现定时。

写脚本PageBackup.ps1:

$targetUrl = "https://example.com"
$saveDir = ".\page_backups"
# 创建保存目录
if (-not (Test-Path $saveDir)) {
    New-Item -ItemType Directory -Path $saveDir | Out-Null
}
# 生成带时间戳的文件名
$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$filename = Join-Path $saveDir "page_$timestamp.html"

# 模拟浏览器请求头
$headers = @{
    "User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}

try {
    Invoke-WebRequest -Uri $targetUrl -Headers $headers -OutFile $filename
    Write-Host "已保存: $filename"
}
catch {
    Write-Host "下载失败: $_"
}

然后打开「任务计划程序」:

  1. 创建基本任务,设置触发器为「每隔X分钟执行」
  2. 操作选择「启动程序」,程序选powershell.exe,参数填-ExecutionPolicy Bypass -File "C:\full\path\to\PageBackup.ps1"
  3. 保存任务即可自动运行

注意事项

  • 部分网站有反爬机制,频繁请求可能被封IP,可适当延长间隔或添加代理
  • 如果需要登录后才能访问的页面,要在请求中带上登录后的Cookie(Python用requests.get的cookies参数,curl用-b参数)
  • 定期清理旧的备份文件,避免占用过多磁盘空间

内容的提问来源于stack exchange,提问作者matias villegas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 12:22:17