一键下载整个网站源代码,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
深夜加班赶工,你刷到一个设计惊艳的网站,想把它存下来慢慢研究。按下 Ctrl+S 保存网页?只留下孤零零一个 HTML,图片样式全丢。手动逐张下载资源?一个页面几十个文件,点到你手酸。是不是想要这样一种体验:输入一个网址,整个网站的源代码和全部资源就被自动打包带走?这就是今天的主角——Website-downloader,一个基于 Node.js 的专业级网站下载工具,专门解决"一键下载网站源代码、整站资源离线备份"这类需求。
为什么需要它:先讲一个"存网页"的故事
回想一下你真正想"留住"一个网站的时刻:可能是看到一套值得模仿的 UI 设计,想离线分析它的 CSS 与 JS 实现;可能是客户的项目文档站要留档,方便团队无网时查阅;也可能是你马上要出差,想在高铁上离线演示某个产品的官网。
这些场景有个共同点:你要的不是"一个页面",而是完整的网站——HTML 页面、样式表、脚本、图片、字体,一个都不能少。浏览器自带的"另存为"做不到,手动一个个下载不现实,自己写爬虫又太重。Website-downloader 就是为这个痛点而生的:它是 Node.js 写的 Web 应用,你打开浏览器操作,它负责指挥系统里的 wget 工具干活。
三分钟跑起来:装好环境,粘个网址就能用
先别急着研究原理,最快路径只需要两步准备、三步操作。
环境要求很朴素:装好 Node.js(v12 以上即可),再确认系统里有 wget 命令(Linux、macOS 大多自带,Windows 装个 wget 后放到 PATH 里就行)。
第一步,把项目拉到本地:
git clone https://gitcode.com/GitHub_Trending/we/Website-downloader第二步,进入目录安装依赖并启动:
cd Website-downloader && npm install && npm start第三步,浏览器打开http://localhost:3000,在输入框里粘入目标网址,点一下蓝色的下载按钮。就这么简单——下载、进度、打包全自动,你只需要等。
它能帮你搞定这三件大事
整站镜像:把网站的"骨头"和"血肉"一起搬回家
这是核心能力。它靠一条 wget 命令完成全站下载,核心代码在 wget/index.js:
wget -mkEpnp --no-if-modified-since ${data.website}这条命令看着像天书,拆开看就懂了:-m表示镜像模式,会顺着网站内部链接层层往下爬,抓下整个站点的结构;-k把绝对链接转换成相对路径,保证下载到本地后页面之间依然互相点得通;-E会根据内容类型自动补上.html、.css这类正确的文件扩展名;-p专门下载页面必需的样式表和图片;-np则把下载范围限制在当前网站内,不会爬到外站去。一句话:HTML、CSS、JavaScript、图片、字体全都要,一个不落。
自动打包:下载完顺手压成 ZIP
下载结束不等于完事。你可能想把整个站点发给同事,或者归档保存——archiver/index.js 就是干这个的。它把下载好的网站目录整个压缩成 ZIP,存进public/sites/文件夹,压缩级别开到最高。下载完成的那一刻,一个可以直接分发、直接解压运行的离线网站包就出现在你面前。
实时进度:下载过程全程看得见
这可能是它最贴心的地方。传统命令行工具下载时黑屏刷日志,你不知道它进行到哪一步了。Website-downloader 用 Socket.IO 做实时通信(见 socket/socket.js),每下载一个文件,进度条和日志就通过 WebSocket 推送到网页上。看着"已下载文件数"一点点涨上去,心里特别踏实。
实战演练:亲手把一个小站完整"搬"下来
光说不练假把式,我们完整走一遍流程。
假设你要备份某个技术文档站。打开http://localhost:3000,在输入框里输入目标网址,点击下载。你会看到这样的画面:
界面上方是实时更新的已下载文件数,下方是逐行滚动的下载日志,告诉你每个文件的抓取状态。整个过程不需要你碰任何命令行——这正是这个工具对新手最友好的地方。
等到日志末尾出现 "Completed",一个以网站域名命名的 ZIP 包就静静躺在public/sites/里了。你可以直接下载它,解压后双击index.html,一个完整可离线浏览的网站副本就诞生了。整个流程从输入网址到拿到 ZIP,全程不需要写一行代码。
进阶技巧:让下载更聪明
跑通基础流程后,你可以动点小心思,让它更贴合你的使用习惯。
技巧一:自定义下载参数。全部下载逻辑都集中在 wget/index.js 的命令字符串里,想限速、加请求间隔、换浏览器标识,往里追加参数就行。比如加上--wait=2 --random-wait可以放慢请求节奏,既减轻目标服务器压力,也避免被对方识别为暴力抓取。
技巧二:改 ZIP 的存储位置。默认压缩包输出在 archiver/index.js 里的./public/sites/。如果你有专门的备份盘,把这里的路径改成你的目标目录即可,几秒钟的事。
技巧三:了解它的"断点续传"思路。注意命令里的--no-if-modified-since与 wget 自带的增量判断——它会跳过本地已有的旧文件,避免重复下载。想彻底重下?清理对应网站目录后再来一次就行。
避坑指南:这些问题你可能也会遇到
下载速度慢,甚至卡住不动?多半是目标网站响应慢,或者下载策略太激进。对策:给 wget 加上限速和等待参数,挑网络空闲时段再试,大型站点可以分批下载不同栏目。
下载完发现部分图片、脚本缺失?很可能是目标网站用了 JavaScript 动态渲染,wget 抓不到运行时才生成的内容。对策:这类站点建议改用支持渲染的抓取方案,或者手动把遗漏的资源链接补进下载清单。
离线打开页面排版错乱、链接失效?一般是复杂 URL 结构导致的链接转换不彻底。对策:检查 HTML 里的相对路径是否正确,必要时用正则批量修正资源引用。
写在最后
Website-downloader 的价值,在于把"专业爬虫才做得到的事"压缩成了一个输入框加一个按钮。对想研究优秀网站源码的开发者、需要离线演示的售前工程师、要定期备份站点的运维来说,它都是那个"装上就回不去"的效率工具。核心逻辑就三行代码量级,读源码也完全没有负担。
现在就去 clone 下来试一次吧,你会惊叹:原来整站备份可以这么省心。不过最后还是要温馨提示一句:下载网站请务必遵守目标站的 robots.txt 和版权规定,仅用于学习、研究与合法备份,别把工具用错地方。
【免费下载链接】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),仅供参考