四个克隆方案的能力边界,选错工具等于白跑
| 工具 | 能克隆什么 | 搞不定的 | 速度 | 一句话定位 |
| HTTrack | 传统服务端渲染网站、静态站、博客 | SPA单页应用、重度JS渲染 | 中等,支持断点续传 | 新手最友好,有图形界面,所见即所得 |
| wget | 任何HTML网站,命令行自动化 | JS渲染、需要登录的页面 | 快,单线程可调速 | 服务器端批量自动化首选,脚本友好 |
| SiteSucker | Mac/iOS,有一定JS渲染能力 | 登录墙、复杂反爬 | 较快 | Mac用户首选图形界面工具 |
| 在线工具/WebClone | 小站快速克隆、前端页面复刻 | 大站超时、资源加载不全 | 依赖服务器性能 | 零安装、即开即用,适合几百页以内 |
HTTrack:二十年老牌工具,图形界面让它成为入门首选
为什么HTTrack是下载量最大的整站克隆工具
HTTrack从2002年发布至今已经维护了二十多年,开源免费,跨平台支持Windows/Linux/Mac。它的核心价值是"下载完就能用"——下载一个网站后,本地的所有链接会自动转换为相对路径,点击任何链接跳转到的都是本地文件,实现真正的离线浏览。
和wget的最大区别在于操作方式。HTTrack有完整的图形界面(WinHTTrack),通过向导一步步设置:输入目标网站URL→设置下载深度→选择文件类型→开始下载→显示实时进度和已下载文件列表。下载过程中能看到每个文件的下载状态、大小、速度,出错了有明确的错误提示。对不熟悉命令行的站长来说,这个学习成本几乎为零。
关键配置项,设错了要么漏文件要么把整个互联网下回来:
· 深度限制(depth):默认不限深度会递归下载所有链接,如果目标网站外链很多,会无限跑下去。建议设3-5层。WordPress博客通常3层就覆盖所有文章页面。

· 域名限制:只下载同一域名下的文件,不跟随外链。这是防止"把整个互联网下回来"的安全阀。
· 文件类型过滤:默认下载HTML/CSS/JS/图片/文档。如果你的目标是备份文章内容,可以去掉视频和大型PDF,节省大量时间和磁盘空间。
· 速率限制:可以限速下载(比如限500KB/s),避免对目标服务器造成过大压力。有些网站有反爬机制,下载太快会被封IP,限速反而是保护自己的手段。
短板:遇到React/Vue写的SPA单页应用,HTTrack只能下载到一个空壳HTML(里面只有<div id="app"></div>),实际内容由JavaScript动态生成,HTTrack执行不了JS。另外,需要登录才能访问的页面、有验证码的页面、有反爬机制(Cloudflare五秒盾等)的页面,HTTrack全部搞不定。
wget:命令行用户的终极武器,一条命令镜像一个站
wget镜像命令:一行代码,但每个参数都在踩坑边缘
wget是Linux/Mac系统自带的命令行下载工具,也是服务器端批量自动化方案的首选。一条经典命令:
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent https://目标网站.com
拆解一下每个参数在干什么:
· --mirror:开启镜像模式,等同于 -r -N -l inf --no-remove-listing,递归下载、只下载更新的文件、不限深度。
· --convert-links:下载完成后自动把HTML里的绝对链接改成相对链接,让本地镜像可以离线点击浏览。不加这个参数,本地打开HTML文件后所有链接还是指向线上,点了就跳回线上网站。
· --adjust-extension:如果下载的文件没有后缀名但Content-Type是text/html,自动加.html后缀。不加的话某些CMS生成的URL(如 /about)下载后没有后缀名,本地浏览器打不开。
· --page-requisites:下载页面渲染所需的所有资源(CSS、JS、图片、字体)。不加这个参数只下载HTML,打开后没有样式和图片。
· --no-parent:不追索到父级目录,防止从 /blog/article1 一路爬到根目录再爬到其他分区。
三个进阶参数,知道和不知道差别很大:
· --wait=1:每次请求之间等待1秒。不加这个参数wget会以最快速度连续发包,小型虚拟主机可能被你打挂,也可能触发反爬封IP。
· --limit-rate=500k:限速500KB/s。和--wait同理,是礼貌爬取的基本配置。
· --user-agent="Mozilla/5.0 ...":伪装浏览器UA。有些网站会拒绝wget默认的UA(Wget/1.x),返回403。

wget相对于HTTrack的核心优势是可以写进脚本自动化运行。你有20个站要备份,写一个shell脚本循环跑,设个cron每周日凌晨自动执行,比手动打开HTTrack点20次方便得多。另外wget支持断点续传(-c参数),一个10万页的大站下载到一半网络断了,重新执行命令会自动从断点继续,不会重头再来。
短板:和HTTrack一样,wget不执行JavaScript。下载SPA应用只能拿到空白页面。需要登录Cookie的页面也不支持(除非手动从浏览器导出Cookie并通过--header参数传入)。另外wget的命令行输出比较简略,大站下载时看不到进度条,只能看到一个个URL滚过去,不知道什么时候能下完。
在线工具和AI方案:零安装但各有局限
WebClone — 开源在线扒站工具,适合小站和前端仿站
WebClone是GitHub上的开源项目,基于Python Flask+WebSocket实现,浏览器里打开网页→输入目标URL→点击下载→自动打包成ZIP供下载。它的定位是"在线扒站"而非"全站镜像",适合下载单个页面及其关联资源,而不是几千页的大站。
优势是零安装、跨平台,在手机或平板上都能用。输出是标准HTML+CSS+JS的静态文件包,可以直接部署到任何静态托管服务。
短板:大站会超时,页面超过几百个就容易卡住。依赖部署服务器的性能,如果部署在低配VPS上体验很差。不处理登录和反爬。
AI网站复刻工具 — 适合前端页面克隆,但不适合整站备份
2025年后出现了不少AI驱动的网站克隆工具(如Energent.ai、screenshottocode等),原理是截取网页截图→AI识别布局→生成对应的HTML+CSS+JS代码。这种方式对单个页面的前端复刻效果很好,生成的代码结构清晰、可以直接二次开发。
但它不是整站下载工具。AI只能克隆当前这一个页面(而且只克隆视觉层面,不克隆后端逻辑、数据库、用户系统)。如果你需要的是"把整个网站几百篇文章完整备份到本地",AI工具做不到。它适合的场景是:看到某个网站的页面设计很好看,想把它的布局和样式快速复刻出来作为自己网站的模板。
短板:页面和页面之间的链接关系不会保留。AI生成的代码和原站代码不完全一样,SEO标签、结构化数据等可能丢失。
kage — Go语言写的轻量新秀,用headless Chrome处理动态页面
kage是2025年后出现的新工具,用Go编写,底层调用headless Chrome渲染页面,能处理部分JavaScript渲染的内容。它的设计思路很独特:用Chrome打开每个页面→等JS执行完毕→截取最终渲染的HTML→剥离所有JS代码→保存纯静态HTML。这样既解决了HTTrack/wget的JS渲染问题,又保留了离线可浏览的特性。
适合克隆那些"看起来像静态站但实际是JS生成"的网站,比如文档站(VuePress/Docusaurus生成的)、博客(Next.js/Gatsby生成的)。
短板:需要安装Chrome或Chromium,对服务器环境有要求。速度比wget慢很多(每个页面都要启动浏览器渲染)。用户登录、复杂交互仍然搞不定。项目较新,社区和文档不如HTTrack成熟。
五类场景,只有一款工具最合适
| 你的场景 | 核心需求 | 首选工具 | 理由 |
|---|---|---|---|
| 个人博客/企业站备份 | 完整下载、离线可浏览、不需要代码 | HTTrack | 图形界面向导式操作,下载完自动转相对路径,零门槛 |
| 多站批量定时备份 | 脚本自动化、定时执行、服务器端运行 | wget | 一条命令配cron全自动,20个站一个脚本搞定 |
| Mac用户下载静态站 | 不想用命令行、不想装虚拟机 | SiteSucker | Mac原生图形界面,App Store可下载 |
| SPA文档站/Next.js博客克隆 | JS渲染的页面需要执行后才能拿到内容 | kage 或 Puppeteer脚本 | headless Chrome渲染后再保存HTML |
| 快速下载单个页面/前端仿站 | 不装软件、即开即用 | WebClone在线 / AI复刻工具 | 浏览器打开就能用,几百页以内够用 |
三个所有工具都绕不开的限制,提前知道就不会白跑
SPA单页应用:HTML下载下来只有空壳
React、Vue、Angular写的网站,HTML文件本身只有一个挂载点(如<div id="root"></div>),所有内容由JavaScript在浏览器端动态生成。HTTrack和wget只能下载到这个空壳HTML,看不到任何实际内容。解决方法:用kage或自写Puppeteer/Playwright脚本,先用headless浏览器渲染页面→等待JS执行完成→获取完整HTML→保存到本地。但这会慢很多(每个页面1-3秒),而且需要额外的环境配置。
动态内容和数据库:能下载到的永远是表面
网站镜像工具只能下载前端静态资源(HTML/CSS/JS/图片),下载不到后端的PHP/Python/Node.js源码,下载不到MySQL数据库里的内容。你下载一个WordPress网站得到的是WordPress生成的静态HTML页面,不是WordPress的PHP源码和数据库。如果目标是"完全克隆一个动态网站并部署到新服务器",网站镜像工具做不到——你需要的是网站搬家工具(迁移数据库+源码文件),不是镜像下载工具。
大站下载的时间和磁盘成本被严重低估
一个中等规模的WordPress博客(500篇文章+图片),整站下载大约需要:HTML文件3000个(文章+分类+标签归档页)、图片2000张(每篇文章平均4张图)、CSS/JS文件100个。总文件数约5000个,总大小约500MB-2GB。用HTTrack或wget限速500KB/s,需要30-60分钟。
一个大型电商站(10万产品+图片),下载量可能达到50GB以上,需要几天甚至一周。而且很多网站有无限滚动分页、筛选组合参数,这些URL组合起来是天文数字——工具会陷入无限循环,永远下不完。这种场景需要精确设置下载深度和URL过滤规则,只下载需要的页面类型。
网站镜像克隆这件事,HTTrack负责"看得见的全下载下来还能离线浏览",wget负责"服务器端自动化批量跑",kage负责"HTTrack和wget都搞不定的JS渲染页面"。选工具的核心不是比功能多少,是比你的目标网站是传统服务端渲染还是SPA——这是所有克隆工具的第一道分水岭。跨过去了,剩下的就是配好参数、设好限速、准备好磁盘空间。还有一条底线:镜像下载只能拿到前端的皮,拿不到后端的源码和数据库。要搬家去用搬家工具,要克隆前端去用HTTrack/wget,两件事不要搞混。
