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

如何通过wget模拟点击获取指定页面的降雨月统计文件?

使用wget模拟点击“Monat”按钮下载降雨月统计数据

我之前也碰到过这种情况——网页上的下载按钮不是直接指向静态URL,而是通过JavaScript触发请求。下面是一步步解决的实用方法:

1. 找出“Monat”按钮对应的真实下载链接

首先得搞清楚点击按钮后浏览器实际请求的是什么URL:

  • 打开目标页面,按下F12调出浏览器开发者工具,切换到网络标签页
  • 点击左上角的清空按钮,把现有请求都清空
  • 现在点击页面上的“Monat”按钮,盯着网络请求列表,找新出现的请求(通常是.xlsx或.xls后缀的文件)
  • 找到这个请求后,右键选择“复制链接地址”,这就是你要的真实下载URL

2. 直接用wget下载

如果这个URL是静态的(不会随时间变化),直接运行下面的命令就行:

wget "你复制的完整下载URL"

3. 处理网站的反爬验证(如果需要)

有些网站会检查请求的来源(Referer)或者浏览器标识(User-Agent),如果直接用wget下载失败,试试加上这些参数:

# 带上原页面作为Referer,模拟从页面点击过来的请求
wget --referer="http://www.noel.gv.at/wasserstand/static/stations/109710/station.html" "下载URL"

# 如果还不行,加上浏览器的User-Agent,伪装成普通浏览器请求
wget --referer="http://www.noel.gv.at/wasserstand/static/stations/109710/station.html" \
     --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" \
     "下载URL"

4. 应对动态生成的URL

如果下载URL里有动态参数(比如时间戳、随机字符串),那得看看页面的JavaScript代码:

  • 在开发者工具的源代码标签页里,搜索“Monat”或者“excel”关键词,找到触发下载的JS函数
  • 分析函数逻辑,看它是怎么拼接下载URL的(比如是否基于站点ID生成),然后自己构造出对应的URL再用wget下载

举个例子,如果找到的JS代码是这样的:

function downloadMonthly() {
    const stationId = '109710';
    window.location.href = `/wasserstand/static/stations/${stationId}/monthly_rainfall.xlsx`;
}

那对应的完整下载URL就是http://www.noel.gv.at/wasserstand/static/stations/109710/monthly_rainfall.xlsx,直接用wget下载就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:56:30