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

为何wget无法镜像目标网站中的.zip文件?

为何wget无法镜像目标网站中的.zip文件?

我完全懂你的感受——本来以为用wget的镜像模式批量抓zip文件应该是个简单活儿,结果折腾半天没动静,连debug模式都看不到相关路径,确实让人摸不着头脑!

先给你拆解下问题根源:
首先,那些不带协议的//download.damieng.com/...链接不是bug,是Web开发里很常见的相对协议URL,它会自动继承当前页面的协议(这里是https),wget本身是支持解析这种链接的,所以问题不在这儿。

真正的坑出在你用的-A .zip参数上!你可能以为这个参数只是用来筛选最终要下载的zip文件,但实际上wget的-A(accept)规则会同时影响它爬取的页面:当你只指定.zip时,wget会跳过所有非zip格式的文件——包括那些包含zip链接的子页面(比如/zx-origins/sub-page这类html页面)!连子页面都没爬取,自然就提取不到里面的zip链接了,这就是为什么debug里看不到相关路径的原因。

修正后的命令

你需要调整-A参数,让wget允许爬取html页面(这样才能提取里面的zip链接),同时只保留zip文件的下载。可以把-A改成同时包含.html和.zip:

wget -m -e robots=off -D download.damieng.com,damieng.com -A .html,.zip https://damieng.com/typography/zx-origins/

额外优化建议

如果之后发现下载了太多不需要的html文件,可以爬完后用find命令批量清理:

find ./damieng.com -name "*.html" -delete

另外,如果你担心无协议链接的解析问题,可以加上--trust-server-names参数,让wget更准确地处理服务器返回的文件名和链接格式。

运行修正后的命令后,wget会先爬取所有相关的html子页面,从中提取出zip链接,再去下载这些zip文件,而且因为指定了-D,只会处理目标域名下的内容,不会乱爬其他网站。

备注:内容来源于stack exchange,提问作者Stefan Midjich

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 13:53:11