整站下载成 ZIP 包Website-downloader 上手到出包流程【免费下载链接】Website-downloader Download the complete source code of any website (including all assets). [ Javascripts, Stylesheets, Images ] using Node.js项目地址: https://gitcode.com/GitHub_Trending/we/Website-downloader一个教程站马上要下线你手头又缺它的源码和资源想把它完整存到本地——手动就得逐页右键另存为几十上百个页面点到你怀疑人生。Website-downloader 就是干这件事的在浏览器页面里填一个网址它把整站抓下来最后推给你一个 zip 包。它帮你做什么一句话递归下载目标网站压缩成一个 zip再直接推送到你的浏览器。页面、样式、脚本、图片都会被抓下来HTML 里的链接同时被改写成相对路径解压后双击 index.html 就能离线打开不依赖网络。整个过程你不用记任何命令行参数。谁会用得上比较典型的两种情况你写技术文章引用了某个网站怕它哪天改版把内容搞丢想存一份完整快照或者你要把某个站点拉到飞机上离线看。只要需求是把整个网站变成本地文件它就是干这个的。跑起来开始前确认两件事机器上装好了 Node.js自带 npm系统里有 wget 命令。Linux 和 macOS 一般自带Windows 需要单独装。4 步就能跑克隆代码到工作目录git clone https://gitcode.com/GitHub_Trending/we/Website-downloader cd Website-downloader安装依赖npm install启动服务监听 3000 端口npm start浏览器打开http://localhost:3000把目标网站的完整 URL带 http/https 前缀填进输入框点下载按钮。接下来就是等。页面中间的日志区会滚动打印 wget 的实时输出上方的计数器每看到一行 200 OK 就加 1也就是告诉你已经落盘多少个文件。看到 Compressing completed successfully 后底部会出现绿色的 Download website assets 按钮点一下浏览器就开始保存 zip。几十页的小站通常 1~2 分钟出包大站就是等得更久中途不用做任何操作。它是怎么工作的你点下载时页面并不是发一个普通的 HTTP 请求而是通过 Socket.io 连接带着一个随机 token 把请求发过去。服务器随即调系统 wget 递归抓取网站的页面、样式和图片并把页面里的链接改写成相对路径wget 的进度实时推回页面当日志抓完后 archiver 用最高压缩级别把整个下载文件夹打成 zip 写进public/sites/。页面最后那个下载按钮本质就是跳过去拿这个静态文件。真正执行的是一条命令换成你的网址即可wget -mkEpnp --no-if-modified-since https://example.comm 是递归下载k 把链接改写成相对路径E 按内容类型补扩展名p 抓取页面需要的样式和图片n 表示递归时不爬到父目录。连接入口和请求分发在 socket/socket.js抓取和压缩的完整逻辑分别写在 wget/index.js 和 archiver/index.js想改下载行为就从这个顺序看起。常见卡点与处理wget 没装。现象点下载后日志只报错、文件计数不动。原因抓取逻辑靠调用系统里的 wget它不随 Node.js 一起提供。处理先装上它Ubuntu/Debian 用sudo apt install wgetmacOS 用brew install wget。同一网站重复下载会覆盖旧包。现象上周存的那份 zip 找不到了。原因输出路径固定为public/sites/域名.zip再下一次同名文件直接覆盖。处理下载完成后立刻把 zip 挪走或者重新下载前先手动移走旧文件。需要登录的页面抓不全。现象同样的页面本地版比线上少一块内容。原因wget 只发裸请求不带 cookie 和登录态只能拿到公开内容。处理私有内容目前不在这个工具的能力范围内得用浏览器开发者工具手动导出。接下来回到开头的场景教程站要下线时你现在只需要贴一个 URL等约 1 分钟把 zip 存走。想调整抓取范围或压缩逻辑的话入口就是仓库里的 wget/index.js 和 archiver/index.js 这两个文件。【免费下载链接】Website-downloader Download the complete source code of any website (including all assets). [ Javascripts, Stylesheets, Images ] using Node.js项目地址: https://gitcode.com/GitHub_Trending/we/Website-downloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考