项目卡片
- 项目:Website-downloader
- 状态:4.7k Star / 1k Fork / MIT License / 最近更新 2026 年 5 月
- 一句话判断:把 wget 的整站镜像能力封装成网页版,输入网址、等进度条、拿 ZIP,三步完事。
上个月一个朋友的公司旧站准备下线,找我帮忙备份。我直接丢过去一行 wget 命令,结果他折腾半小时也没跑通——参数记不住,路径理不清,下载了一堆乱七八糟的东西。
后来我找到了 Website Downloader 这个项目,打开网页、粘贴网址、点击下载,直接拿到 ZIP。两分钟搞定。
这东西的价值就在这:不是技术上有多难,而是把一个本该简单的事情变得真正简单。
它到底做了什么
这个项目的技术实现其实很直白:后端调用 wget 做整站镜像下载,用 archiver 打包成 ZIP,前端通过 Socket.IO 实时显示下载进度。
核心 wget 参数是这组:
wget -mkEpnp --no-if-modified-since <URL>
拆开看:-m(mirror,递归抓取)、-k(convert-links,链接转相对路径)、-E(adjust-extension,自动补扩展名)、-p(page-requisites,下载 CSS、图片等页面依赖)、-np(no-parent,不往上级目录爬)。
这套组合的好处是:下载完的文件夹可以直接在本地浏览器打开,链接、样式、图片都正常显示,不需要额外处理。

谁会需要这个工具
备份自己的网站。 你用 WordPress 或者其他建站工具搭了个站,想在迁移前留一份完整快照。直接用这个工具,几分钟就能拿到所有 HTML、CSS、JS 和图片。
离线浏览。 某些文档站、教程站你经常需要查阅,但网络环境不稳定。提前下载到本地,没网也能看。
学习竞品网站结构。 做前端的同学想看看某个优秀网站的页面结构、样式组织、资源引用方式。整站下载后在本地打开,比在线翻源码方便得多。
抢救即将下线的网站。 有些老站突然宣布关站,时间紧迫。这个工具不需要安装任何软件,打开网页就能用,适合应急。
实际体验
我在本地跑了一下这个项目,流程很简单:
git clone https://github.com/AhmadIbrahiim/Website-downloader.git
cd Website-downloader
npm install
npm start
然后浏览器打开 http://localhost:3000,输入目标网址,点击下载按钮。
界面上会实时显示 wget 的输出日志和已下载文件数量。下载完成后出现一个 “Download” 按钮,点击就能拿到 ZIP 文件。
我拿一个小型静态站测试,大概 2 分钟就完成了下载和压缩。打包后的 ZIP 包含完整的目录结构,解压后直接用浏览器打开 index.html 就能看到原样还原的页面。

几个让我觉得“可以”的地方
门槛极低。 不需要装 wget(项目自带依赖处理),不需要记参数,也不需要命令行操作。这是它和直接用 wget 最大的区别。
实时进度。 通过 Socket.IO 推送 wget 的 stderr 输出,你能看到当前在下载哪个文件、下载了多少。比命令行盯着刷屏友好一些。
一键部署。 README 里提供了 Replit、Glitch、Railway、Render 等多个平台的一键部署按钮。不想本地跑,直接部署到云端也能用。
ZIP 输出。 下载完自动打包成 ZIP,不需要手动压缩。对于要存档或者分享给同事的场景很实用。
边界和注意事项
这个工具也有它的局限,用之前值得了解:
依赖 wget。 整站下载的核心能力来自 wget。如果目标网站有反爬机制、需要登录,或者大量内容通过 JavaScript 动态加载,wget 是抓不到的。它适合静态站和传统服务端渲染的网站。
深度和范围不可控。 wget 的 --mirror 模式会递归抓取所有链接。对于大型网站,下载时间可能很长,占用磁盘空间也大。当前版本没有提供深度限制或 URL 过滤的选项。
安全风险。 如果你部署到公网,任何人都可以输入任意网址让服务器去下载。这意味着你的服务器 IP 可能会被目标网站封禁,或者被恶意利用进行 DDoS。只在受信任的环境使用。
文件清理。 下载的文件会留在服务器的当前目录下。在多人共用的场景中,需要注意磁盘空间和文件清理。
依赖版本偏旧。 package.json 里的 socket.io 还是 2.x,archiver 也是 3.x。能用,但和当前主流版本有差距。
和直接用 wget 的对比
如果你熟悉命令行,完全可以用 wget 直接搞定:
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent https://example.com
效果是一样的。Website Downloader 的价值在于:把这行命令变成了一个带进度条的网页界面,降低了使用门槛,加了自动压缩打包。
所以它更适合这几类人:不太熟悉命令行的设计师或产品经理、需要快速演示给非技术同事看的场景、临时使用不想装东西的情况。

它值不值得用
说实话,这项目技术上没什么黑科技。核心就是一行 wget 命令加一个 ZIP 打包。4.7k Star 有点出乎我意料,但仔细想想也合理——很多人要的不是技术含量高,而是能用、好用、马上能用。
如果你只是偶尔需要下载一个静态网站,它是最省事的选择。如果你要处理 SPA 站、需要登录的页面,或者要控制下载深度,那还是得用 wget + 自定义参数,或者上 HTTrack、Cyotek 这类专业工具。
定位小,但解决得干脆。
引用链接
Website-downloader