一个网址换一份完整离线备份: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 是一个跑在你自己机器上的 Node.js 小服务,专门干整站下载这一件事。丢给它一个网址,它会顺着站点内链接把页面、图片、样式、脚本递归抓全,最后打包成一个 zip。想留哪份站点,一条命令就能拿到本地可离线打开的完整拷贝。
1 分钟搭起来 ⏱️
环境依赖两样:Node.js,以及系统里装好的 wget(Windows 用户建议走 WSL 或 Git Bash,macOS/Linux 多数自带或有包管理器可装)。
git clone https://gitcode.com/GitHub_Trending/we/Website-downloadercd Website-downloader后执行npm installnpm start- 浏览器打开
http://localhost:3000/,在输入框填入目标网址,点按钮即可
背后是怎么跑的 🔍
整个流程就是「下载、打包、推送」三段接力:
| 环节 | 白话说明 |
|---|---|
| wget/index.js | 以子进程方式执行wget -mkEpnp,按站内链接图递归抓取,并把页面与 CSS 里的绝对链接改写成相对路径,保证断网跳转也能通 |
| archiver/index.js | 抓取结束后用最高压缩等级(zlib level 9)把目录压成单个 zip,输出到public/sites/下 |
| socket/socket.js | 通过 socket.io 把 wget 的实时日志逐行推到浏览器,你在页面上看到的进度就是这么来的 |
里面最值得注意的开关是--no-parent:它让递归只发生在指定站点内部,不会顺着上级目录往外扩,省得把无关页面也抓进来。
适合用在哪些场景
- 重要站点可能关停前:把关注多年的博客、文档站提前整站备份一份,关站了本地照样能看
- 长途出差或航班途中:把要用的教程、资料离线打包好,没信号也能翻
- 开发调试:直接读抓下来的本地 HTML 和资源路径,分析结构不依赖线上环境
- 课程页面归档:整站存成压缩包发出去,学员复习不受网络波动影响
用得顺手的小贴士 💡
- wget 不是 npm 依赖,装完
npm install后如果提示找不到 wget,先在系统层面装好再启动 - 生成的 zip 落在
public/sites/目录,下载完成后直接去拿文件即可 - 抓取大站点耗时和磁盘占用都可观,建议先确认目标站点的链接规模再动手
- 命令里带了
--no-if-modified-since,重复下载同一站点会完整重抓而不走缓存,想覆盖旧镜像时正好用得上 - 进程中断时有清理逻辑会删掉半截下载的文件,失败后重新发起即可,不用手动收拾
用顺手之后,下次遇到想长期保留的站点,丢个网址进去,过一会儿就能多一份放在硬盘里的离线副本。
【免费下载链接】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),仅供参考