Website-downloader:一个网址换整站离线镜像,5 分钟上手指南
【免费下载链接】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 压缩包。你拿到的交付物只有一样——一份能断网打开的整站下载文件,也就是完整的网站离线备份。
一句话定位它
它不是云服务,而是跑在你自己机器上的 Express 网页服务。启动后在浏览器填入目标网址,后台就调用系统里的 wget 递归抓取整站,再把结果打包成单个 zip 放进 public/sites/ 目录。拿到的始终是一份完整的站点镜像,不用写爬虫规则,不用配抓取策略。关注多年的独立博客突然 404 下线时,硬盘里那份整站备份就是底气所在。
抓取、改写、推送、压缩:一条从 URL 到 zip 的工作流
整个流程是一条输入 → 处理 → 输出的流水线,四步有先后:
① 镜像抓取:wget/index.js 在后台启动wget -mkEpnp --no-if-modified-since,顺着站内链接递归抓完全站;--no-parent把范围锁死在输入 URL 的目录内,不会"爬高"到父目录多拿无关内容。 ② 链接改写:-k与-E参数把 HTML、CSS 里的绝对地址换成相对路径,并按内容类型自动补齐扩展名(html、css 等),镜像离线打开也能正常跳转。 ③ 进度推送:抓取全程中,wget 的每一行日志都经 socket/socket.js 由socket.io转发,实时滚动在浏览器页面上。 ④ 压缩输出:抓取完成后,archiver/index.js 以 9 级压缩把整个目录打成与域名同名的 zip,写入 public/sites/ 目录,直接拿走。
整站下载教程:从克隆到第一份镜像
前置条件只有一条:系统装好 Node.js 和 wget,服务只负责调用,不自带。
执行分三步走:git clone https://gitcode.com/GitHub_Trending/we/Website-downloader克隆仓库,进目录跑npm install安装依赖,再执行npm start把服务跑起来,监听 3000 端口。
验证结果:浏览器打开http://localhost:3000/,填入目标 URL,点击开始。页面实时滚动抓取日志与文件计数,完成后 zip 出现在 public/sites/ 目录,解压即是一份完整整站镜像。
它不管的边界
边界先说清楚:它不处理登录,需要认证的页面只抓到登录入口;它不执行 JavaScript,依赖前端渲染加载的内容抓不全,wget 拿到的始终是服务器直接返回的内容;它也不做批量任务和定时抓取,一个输入框对应一份 zip。
值得留一份镜像的场合
长途出行:飞机上没信号,提前存好的教程照样打开。课程归档:一学期的在线课程页面压进 zip,离线复习不抖。开发调试:抓下目标站点直接读本地 HTML,结构一目了然,不依赖线上环境。
克隆仓库、跑起服务,先拿一个纯静态站练手——一个网址,就够你把整站搬回家。
【免费下载链接】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),仅供参考