SiteBackup - 网页备份工具
一个基于 Wails 框架开发的网页备份工具,支持完整备份网页内容,包括 HTML、CSS、JavaScript、图片等所有资源,并提供隐私清理功能。
Star History
⚠️ 重要声明
本工具仅供学习和研究使用,请勿用于任何违法活动!
- 🎓 学习目的:仅用于学习网页技术和备份个人网站
- 📋 遵守规则:请遵守目标网站的 robots.txt 和使用条款
- 🚫 禁止滥用:不得用于恶意爬取、侵犯版权或其他违法行为
- ⚖️ 自负责任:使用者需自行承担使用责任
🚀 功能特性
核心功能
- 📦 完整备份:备份网页的所有资源文件(HTML、CSS、JS、图片、视频等)
- 🛡️ 隐私清理:自动移除第三方跟踪代码、统计代码、广告代码
- 📊 实时进度:显示备份进度和文件下载状态
- 🗜️ ZIP 打包:自动将备份文件打包为 ZIP 格式
- 📁 目录选择:支持选择自定义保存目录
- 📱 响应式布局:栅格布局,适应不同窗口大小
- 🌍 跨平台:支持 Windows、macOS、Linux
界面特性
- 🎨 现代化 UI:基于 Naive UI 的美观界面
- 📋 详细配置:丰富的备份选项配置
- 📈 进度监控:实时显示文件下载状态
- 🔍 文件详情:可查看每个文件的下载进度
⚠️ 功能限制
请注意:本工具主要适用于简单的静态网页备份
技术限制
- ❌ 动态内容:无法备份需要 JavaScript 动态加载的内容
- ❌ 懒加载:不支持懒加载(lazy loading)内容
- ❌ 用户交互:无法处理需要用户交互才显示的内容
- ❌ SPA 路由:不支持单页应用(SPA)的动态路由内容
- ❌ 登录内容:无法备份需要登录才能访问的内容
- ❌ 复杂框架:对于 React、Vue、Angular 等现代框架构建的复杂应用效果有限
适用场景
- ✅ 静态网站:个人博客、企业官网等静态页面
- ✅ 简单页面:新闻文章、产品介绍页面
- ✅ 文档网站:技术文档、帮助页面
- ✅ 传统网站:基于传统 HTML/CSS/JS 的网站
🛡️ 隐私清理功能
自动清理的内容
- 📊 统计代码:Google Analytics、百度统计、CNZZ、Mixpanel、Segment 等
- 👁️ 跟踪代码:Facebook Pixel、TikTok Pixel、Snapchat Pixel、Hotjar、CrazyEgg、Clarity 等
- 📢 广告代码:Google Ads、DoubleClick、Taboola、Outbrain、PopAds、PropellerAds、AdCash 等
- 🏷️ 标签管理器:Google Tag Manager (GTM) 等
- ⚠️ 恶意标签:base 标签劫持、自动跳转、来源伪造、恶意重定向等
安全防护
- 🔒 链接劫持防护:自动删除所有 base 标签,防止恶意网站劫持页面中的所有相对链接
- 🚫 自动跳转防护:删除 meta refresh 标签,防止页面自动跳转到钓鱼网站或恶意网站
- 🎭 来源伪造防护:删除 meta referrer 标签,防止恶意网站伪造访问来源
- 🔄 重定向防护:检测并删除包含恶意重定向的 JavaScript 代码
🛠️ 技术栈
前端技术
- 框架:Vue 3 + TypeScript
- UI 库:Naive UI
- 构建工具:Vite
- 路由:Vue Router 4
- 图标:Ionicons 5
后端技术
- 语言:Go 1.23+
- 框架:Wails v2
- 网页解析:goquery
- 文本编码:golang.org/x/text
- HTTP 客户端:Go 标准库
开发工具
- 包管理:Go Modules + npm
- 类型检查:TypeScript + Vue TSC
- 代码格式化:内置支持
📋 系统要求
开发环境
- Go:1.23 或更高版本
- Node.js:18 或更高版本
- Wails CLI:v2 最新版本
运行环境
- Windows:Windows 10/11 (x64)
- macOS:macOS 10.15+ (Intel/Apple Silicon)
- Linux:主流发行版 (x64)
🚀 快速开始
1. 克隆项目
复制
git clone https://github.com/adiudiuu/site_backup.git
cd site_backup
2. 安装依赖
复制
# 安装 Go 依赖
go mod tidy
# 安装前端依赖
cd frontend
npm install
cd ..
3. 开发运行
复制
# 使用 Makefile(推荐)
make run
# 或直接使用 Wails CLI
wails dev
4. 构建发布
复制
# 构建 Windows 版本
make build-win
# 构建 macOS 版本(需要在 macOS 上运行)
make build-mac
# 或使用 Wails CLI
wails build
📖 使用指南
基本使用步骤
- 输入网址:在目标网址框中输入要备份的网页 URL
- 选择目录:点击"选择目录"按钮,选择备份文件的保存位置
- 配置选项:
- 选择要备份的内容类型(图片、样式、脚本、视频)
- 选择要清理的隐私内容(统计代码、跟踪代码、广告代码)
- 调整高级选项(超时时间、最大文件数、并发数)
- 开始备份:点击"开始备份"按钮
- 监控进度:实时查看备份进度和文件下载状态
- 完成备份:备份完成后,ZIP 文件将保存到指定目录
使用建议
- 🎯 优先选择:静态网站或博客进行备份
- ⚠️ 避免备份:复杂的动态网站或 SPA 应用
- 🧪 先测试:测试小页面后再备份大型网站
- ⏱️ 注意频率:注意网站的访问频率限制,避免过于频繁的请求
- 📏 合理配置:根据网络情况调整超时时间和并发数
故障排除
- 网络错误:检查网络连接和 URL 是否正确
- 访问被拒:可能遇到反爬虫机制,建议稍后重试
- 文件过大:调整最大文件数限制或增加超时时间
- 权限问题:确保对保存目录有写入权限
🤝 贡献指南
欢迎提交 Issue 和 Pull Request!
开发流程
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
代码规范
- Go 代码遵循
gofmt格式 - TypeScript 代码使用 ESLint 规范
- 提交信息使用英文,格式清晰
📄 许可证
本项目采用 GNU General Public License v3.0 许可证。
这意味着:
- ✅ 可以自由使用、修改和分发
- ✅ 可以用于商业目的
- ⚠️ 修改后的代码必须开源
- ⚠️ 必须保留原始许可证和版权声明
- ⚠️ 不提供任何担保
详细信息请查看 LICENSE 文件。
⚖️ 免责声明
- 本工具仅供学习和研究使用
- 使用本工具产生的任何法律后果由使用者自行承担
- 开发者不承担任何责任
- 请确保您的使用行为符合当地法律法规和目标网站的使用条款
- 请尊重网站的 robots.txt 文件和访问限制
📞 联系方式
- GitHub Issues: 提交问题
- 项目主页: https://github.com/adiudiuu/site_backup


你这些条件一写,项目水平大打折扣啊