整站离线保存只需一条命令?这个Node.js工具把网站连图带码打包成Zip
发布时间:2026/8/17 23:14:32 作者:尧图编辑部 阅读量:1,286

整站离线保存只需一条命令这个Node.js工具把网站连图带码打包成Zip【免费下载链接】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你有没有遇到过这种崩溃瞬间看中一个设计惊艳的网页想右键另存为收藏起来结果保存下来的页面 CSS 全丢、图片全是裂图打开像车祸现场或者给客户做的演示网站到了会场才发现没网整个方案当场瘫痪Website-downloader就是来解决这种痛点的——它基于 Node.js输入一个网址把整个网站连同 HTML、CSS、JavaScript、图片全部递归抓下来自动转成相对路径最后打成 Zip 给你。全程不需要你懂一行抓包代码。三个最容易踩的坑别再用另存为骗自己了我见过太多人栽在这三件事上先给你排雷误区一浏览器保存网页等于保存网站。这只是保存了当前这个 HTML 文件CSS 和图片大多是网络地址断网就废。你保存的是网页不是网站。误区二自己写爬虫更可控。我当年也这么想结果被编码、反爬、相对路径拼接折腾了一周连个带图片的博客都没抓全。下载工具的核心难点从来不是抓而是抓完还能离线正常显示。误区三下载完就算完事打包交给压缩软件。上百个零散文件手动右键压缩命名还容易乱。真正好用的工具应该下载完自动给你一个 Zip。这三个坑恰好就是 Website-downloader 逐个解决掉的。一个真实场景甲方突然要看离线版网站朋友小周接了个企业站改版项目验收那天甲方在会议室——没外网。他之前都是现场演示线上版那天差点翻车。他提前把官网域名丢进 Website-downloader两分钟拿到一个 Zip解压双击 index.html整个官网在本地完整跑起来连字体图标都没缺。甲方当场验收通过。这就是它的价值你在浏览器里看到什么离线后还看到什么不靠运气靠工具。四板斧拆解它能解决什么什么时候用怎么用 第一板斧深度递归把网站的边角料也捞回来很多下载工具只抓首页点进内页就抓瞎。Website-downloader 在wget/index.js里拼了一串 wget 参数核心是-m镜像模式让下载递归展开首页、内页、子目录一个不落。什么时候用备份完整站点、做本地镜像时必开。用法你只需要把网址填进输入框递归是默认行为不用额外配置。 第二板斧链接自动转相对路径断网也长这样这是整站离线能不能用的关键。--convert-links参数会把页面里所有绝对地址改写成相对路径图片、样式、脚本全部指向本地文件。什么时候用只要目标是离线浏览就必须开。这也是它和另存为的本质区别保存的不是快照而是一套能独立运行的网站副本。 第三板斧下载完自动压缩省掉手动打包下载结束不等于流程结束。archiver/index.js接管目录用最高压缩级别zlib level 9把整个网站目录压成 Zip输出到public/sites/目录文件名就是站点域名。什么时候用要存档、要传输、要交付给别人的任何场景。你什么都不用做页面会自动出现Compressing completed successfully的下载按钮。 第四板斧WebSocket 实时播报干等不再焦虑以前跑 wget 是黑屏命令行干等不知道进度。这个工具通过socket/socket.js把下载日志实时推送到浏览器你能看到已下载文件数在涨、正在解析哪个资源、是否进入压缩阶段。什么时候用下载大站、想确认没卡死的时候盯着数字跳就有安全感。三分钟跑起来复制、粘贴、回车上手比你想象得简单就三步git clone https://gitcode.com/GitHub_Trending/we/Website-downloader cd Website-downloader npm install npm start浏览器打开http://localhost:3000粘贴目标网址点下载按钮等 Zip 出现。完事。参数说明书懂一行是一行整个下载行为由 wget 的参数组合决定写死在wget/index.js里看这张表就够了参数一句话人话解释没了它会怎样-m整站镜像式递归能挖多深挖多深只下首页-k把链接改成相对路径离线打开全裂-E按内容类型补全 .html/.css 后缀文件没扩展名打不开-p把页面所需的 CSS、图片全部拉齐页面光秃秃-np不跑到目标站点的上级目录可能下载到无关内容--no-if-modified-since不判断文件新旧强制获取部分文件可能拿不到一句话总结前面四个保完整后面两个保干净。想调整行为直接改wget/index.js第 20 行那串命令就行。高手才知道的四个进阶玩法换源抓取提速wget 支持自定义--user-agent和--header在wget/index.js里追加参数能绕过部分简易反爬也能伪装浏览器拿到更完整的资源。只抓资源不抓整站把-m换成-r -l 1配合-A指定扩展名比如只收.css就能做一个素材采集器专门囤样式文件。用 token 管理多任务前端用 localStorage 生成 20 位随机 token 标识会话见views/layout.hbs你在多个标签页各开一个 token就能并行下载不同站点互不干扰。断点续传思路wget 本身支持-c继续下载大站下载中断后把该参数加进命令再跑一次能从断点接着抓不用推倒重来。翻车现场与急救指南症状一下载到一半卡住不动了。诊断八成是网络抖动或目标站限速也可能是文件太多在排队。 处方刷新页面重新点下载。工具在wget/index.js里监听了进程终止信号会自动清理半成品目录不会留垃圾占磁盘。症状二解压后网页能开但图片样式全没。诊断目标站点用了绝对路径或 CDN 动态加载-k也救不了外部域名资源。 处方这是镜像类工具的天然边界先确认资源确实在目标站域名下CDN 资源可以配合 hosts 或额外参数单独抓。症状三下载了 10 分钟页面还停在 0 文件。诊断DNS 解析阶段 wget 的输出是 stderr日志可能在缓冲。 处方看页面日志区有没有 Resolving 字样如果是内网域名先在服务器上配好 hosts 再跑。症状四Zip 太大传不动。诊断站点图多且未压缩。 处方在archiver/index.js里调低 zlib 压缩等级默认 9 是最狠的或下载前在 wget 命令里排除大体积视频格式。一句话收尾别再把另存为当整站备份用了——clone 下 Website-downloadernpm start把你最常看的那个站喂给它五分钟内你手里就会多出一个断网也能完整运行的 Zip。今晚就试一次你会回来感谢这条命令的。【免费下载链接】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),仅供参考