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

使用Tampermonkey自动定时下载网页CSV文件技术求助

绝对可行!手把手教你实现自动下载苏格兰小时降雨CSV数据

你的思路完全正确——Tampermonkey + Windows任务计划程序就是完美的解决方案,我来帮你搞定元素定位和脚本编写的核心问题:

一、先搞定Tampermonkey脚本(核心步骤)

你之前的问题出在元素定位不准确,动态渲染的页面不能硬写固定ID/路径,我们换更可靠的方式:

1. 新手友好的元素定位方法

打开目标网站,右键点击右上角的下载按钮→选择「检查」,打开Chrome开发者工具:

  • 下载按钮的class是export-main,这个是对的,但部分动态菜单需要先触发hover才能展开
  • CSV选项是菜单里的一个<span>标签,文本内容就是「CSV」,我们用文本匹配来定位,不怕网站改元素ID

2. 编写Tampermonkey脚本

安装好Tampermonkey后,点击扩展图标→「创建新脚本」,替换成下面的代码:

// ==UserScript==
// @name         SEPA 降雨数据自动下载
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  自动从SEPA网站下载指定站点的小时降雨CSV
// @author       You
// @match        http://apps.sepa.org.uk/rainfall*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 等待页面完全加载(动态页面需要给点渲染时间)
    setTimeout(() => {
        // 1. 触发下载菜单(先模拟hover,确保菜单展开)
        const downloadBtn = document.querySelector('.export-main');
        if (downloadBtn) {
            const hoverEvent = new MouseEvent('mouseover', { bubbles: true });
            downloadBtn.dispatchEvent(hoverEvent);

            // 等待菜单展开(1秒足够,可按需调整)
            setTimeout(() => {
                // 2. 找到并点击CSV选项(用文本匹配,稳定性更高)
                const csvItems = Array.from(document.querySelectorAll('.export-submenu span'));
                const csvOption = csvItems.find(item => item.textContent.trim() === 'CSV');
                if (csvOption) {
                    // 点击父级a标签(span本身不能触发下载跳转)
                    csvOption.parentElement.click();
                    console.log("✅ CSV下载已触发!");

                    // 可选:下载完成后自动关闭页面(方便任务计划自动清理)
                    setTimeout(() => window.close(), 5000); // 等待5秒确保下载完成
                } else {
                    console.log("❌ 未找到CSV下载选项");
                }
            }, 1000);
        } else {
            console.log("❌ 未找到下载按钮");
        }
    }, 3000); // 等待3秒让页面完全加载,避免元素还没渲染出来
})();

3. 脚本测试

保存脚本后,刷新目标网站,确保你已经选中了要下载的站点,看看脚本是否自动触发下载。如果没反应,调整setTimeout的时间(比如把3000改成5000,给页面更多加载时间),或者重新检查元素选择器。

二、设置Windows任务计划程序(实现每小时自动运行)

现在让电脑每小时自动打开网站触发脚本:

  1. 打开「任务计划程序」→「创建基本任务」
  2. 触发器:选择「每天」,然后设置重复任务间隔为1小时,持续时间选「无限期」
  3. 操作:选择「启动程序」,程序或脚本选Chrome的安装路径(一般是C:\Program Files\Google\Chrome\Application\chrome.exe),添加参数填:
    --app=http://apps.sepa.org.uk/rainfall
    
    (用--app模式可以打开独立窗口,避免干扰其他标签页)
  4. 完成:勾选「当单击完成时,打开此任务的属性对话框」,在属性里可以设置「如果任务运行超过10分钟就停止」,避免Chrome一直占用资源

三、关键注意事项

  • Chrome下载设置:打开Chrome设置→「下载」,设置默认下载位置为你指定的文件夹,并且关闭「下载前询问每个文件的保存位置」,这样文件会自动保存到目标路径
  • 站点保持选中:第一次手动打开网站选中目标站点后,Chrome会记住你的选择(只要不清除缓存),下次打开会自动加载该站点的数据
  • 元素选择器更新:如果之后网站更新了页面结构,脚本失效,重新用开发者工具找新的元素选择器替换即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:12:08