简介

Website Downloader 是 GitHub Trending 上的一款实用工具,能够一键下载任意网站的完整源代码(包括所有静态资源),让你轻松实现离线浏览或备份网站内容。项目基于 Node.js + Express 构建,后端调用经典命令行工具 wget,并通过 Socket 通道实时推送下载进度,最终将网站内容压缩打包供用户下载。

核心原理

工具的核心是 wget 的以下参数组合:

wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://example.org

各参数含义:

参数作用
--mirror递归下载整站
--convert-links将所有链接(HTML、CSS 等)转换为相对路径,适配离线浏览
--adjust-extension自动为 HTML/CSS 文件添加合适的后缀
--page-requisites下载 CSS、图片等页面渲染所必需的资源
--no-parent禁止向上爬取父目录,限定下载范围

后端通过 archiver 将下载完成的文件压缩,再经由 Socket 实时推送压缩进度,用户无需等待整个过程结束即可看到下载状态。

技术栈

  • Node.js + Express Web 框架
  • socket.io 实时双向通信
  • archiver / jszip 文件压缩
  • wget 命令行工具(系统依赖)
  • Handlebars 模板引擎

快速开始

# 克隆项目
git clone https://github.com/AhmadIbrahiim/Website-downloader.git
cd Website-downloader

# 安装依赖
npm install

# 启动服务
npm start

# 访问
http://localhost:3000/

在线体验

作者提供了免费的 Live Demo,可直接在浏览器中输入目标网址体验下载效果。

多平台一键部署

项目还支持多个平台的按钮式部署,点击即可在对应平台自动完成部署:

使用场景

  • 📥 备份/归档感兴趣的网站内容
  • 📴 在无网络环境下离线浏览网页
  • 🧪 分析竞争对手网站的实现方式
  • 📚 保存技术文档或教程页面供离线学习

总结

Website Downloader 将 wget 的强大能力与现代化的 Web 界面相结合,提供了一个简单易用的网站离线下载方案。如果你有备份网站、离线阅读或网站分析的需求,这款工具值得一试。

GitHub:AhmadIbrahiim/Website-downloader