步骤一:安装下载工具 Wget
首先,我们需要一个强大的命令行下载工具。`wget` 是最佳选择之一。如果您使用的是 macOS 并已安装 Homebrew,请使用以下命令安装:
brew install wget
🤔 如何验证安装成功?
安装完成后,在终端执行 `wget --version`。如果看到版本信息(如 `GNU Wget 1.21.4`),则表示安装成功。✅
步骤二:Wget 基础抓取 (入门)
这是最基础的网站整站下载命令,适用于静态网站。它会递归下载,并将链接转换为本地可访问的格式。
wget -r -np -k -E -p -nd -A js,html,css,png,jpg,svg,wasm,unityweb {你的网站URL}
⚠️ 注意:此方法可能无法抓取完整资源!
对于像 Unity WebGL 游戏这类通过 JavaScript 动态加载资源(如 `.wasm`, `.data.br` 文件)的网站,`wget` 无法抓取到所有必要文件,会导致离线运行时资源缺失或报错。
步骤三:开发者级抓取方案 (专业推荐)
当基础方法失效时,我们需要模拟真实浏览器行为来捕获所有网络请求。以下是两种专业且可靠的方案。
方案 A: 使用 Playwright 脚本 (全自动)
Playwright 是一个强大的浏览器自动化工具,可以启动一个真实的浏览器内核来加载网页,并拦截所有动态发出的请求,将其一一保存。这是最彻底、最干净的备份方式。
- 安装依赖:
需要 Node.js 环境。在你的项目文件夹中执行以下命令。
# 初始化项目 npm init -y # 安装 Playwright npm install playwright
- 创建并运行脚本:
创建一个名为 `download-game.js` 的文件,粘贴以下代码,修改 `targetUrl` 和 `saveDir`,然后通过 `node download-game.js` 运行。
// download-game.js import { chromium } from 'playwright'; import fs from 'fs'; import path from 'path'; // --- 配置区 --- const targetUrl = 'https://italian-brainrot.mergefellasgame.com'; // 替换成目标网址 const saveDir = './mergefellas_download'; // 保存的文件夹名 // --- 配置区 --- async function download() { console.log(`[🚀] 开始下载: ${targetUrl}`); fs.mkdirSync(saveDir, { recursive: true }); const browser = await chromium.launch(); const context = await browser.newContext(); const page = await context.newPage(); page.on('response', async (response) => { const url = new URL(response.url()); let filePath = path.join(saveDir, url.pathname.substring(1)); if (url.pathname === '/') { filePath = path.join(saveDir, 'index.html'); } try { const buffer = await response.body(); fs.mkdirSync(path.dirname(filePath), { recursive: true }); fs.writeFileSync(filePath, buffer); console.log(`[✅] 已保存: ${filePath}`); } catch (e) { console.log(`[❌] 保存失败 (已忽略): ${url.pathname}`); } }); await page.goto(targetUrl, { waitUntil: 'networkidle', timeout: 60000 }); console.log('[⏳] 页面加载完成,额外等待8秒确保所有动态资源加载...'); await page.waitForTimeout(8000); await browser.close(); console.log(`[🎮] 下载完成!所有文件已保存在 '${saveDir}' 文件夹中。`); } download();
方案 B: Chrome 开发者工具 (手动导出 HAR)
HAR (HTTP Archive) 文件可以记录网页加载过程中的所有网络请求。我们可以导出包含所有资源内容的 HAR 文件,然后用工具提取它们。
操作图解与详细步骤:
- 1打开开发者工具并切换到"网络"面板:
访问目标网页,按 `F12` (或 `Ctrl+Shift+I` / `Cmd+Opt+I`)。在打开的窗口中,点击顶部导航栏的
Network
(网络) 选项卡。 - 2刷新页面并等待加载:
保持开发者工具打开,刷新网页 (`F5` 或 `Cmd+R`)。等待网站(或游戏)完全加载完毕,确保 Network 面板中不再有新的网络请求出现。
- 3找到导出按钮并保存:
这是最关键的一步,根据你的浏览器版本,操作位置略有不同:
- 传统方法:在请求列表的任意位置点击鼠标右键,在弹出的菜单中选择
Save all as HAR with content
。 - 新版 Chrome/Edge:如果右键菜单里没有,请寻找 Network 面板工具栏上的 "Export HAR..." 按钮,它通常是一个向下的箭头图标 。
💡 "with content" 至关重要,它确保了所有资源文件(如图片、JS、WASM)本身都被包含在 HAR 文件内,而不仅仅是请求记录。
- 传统方法:在请求列表的任意位置点击鼠标右键,在弹出的菜单中选择
- 4提取资源文件:
保存 HAR 文件后,你可以选择以下两种方式提取资源:
💻 命令行工具方式
如果你熟悉命令行,也可以使用 `har-extractor` 工具:
# 全局安装工具 (只需一次) npm install -g har-extractor # 运行提取命令 (将 your-file-name.har 替换为你的文件名) har-extractor your-file-name.har
命令执行后,所有网站资源将按原始目录结构保存在一个新文件夹中。
步骤四:本地运行下载内容
由于浏览器安全策略(CORS),WebGL 游戏和许多现代网站无法通过 `file://` 协议直接双击 `index.html` 打开。您必须启动一个本地 HTTP 服务器。
最简单的方式是使用 Python 内置的服务器。在终端中,进入您保存文件的文件夹,然后执行:
# 确保你的电脑安装了 Python 3
python3 -m http.server 8080
服务启动后,打开浏览器访问 http://localhost:8080 即可看到您的离线网站。
步骤五:常见问题排查
错误信息 | 可能原因 | 解决方案 |
---|---|---|
CORS policy error | 直接用 `file://` 协议打开了 HTML 文件。 | 必须使用本地 HTTP 服务器(如 `python3 -m http.server`)来访问。 |
404 Not Found | 关键资源(.js, .wasm, .data)没有被下载下来或路径错误。 | 推荐使用 Playwright 或 HAR 方式重新下载,确保所有动态请求都被捕获。 |
TypeError: WebAssembly.instantiate() | `.wasm` 文件下载不完整、已损坏或未解压(如 `.wasm.br`)。 | 删除已下载文件,重新抓取。如果得到的是 `.br` 压缩文件,需要先解压。 |
步骤六:常用场景与实战案例
根据不同的使用场景,我们提供了针对性的下载策略和SEO优化建议。
🎮 场景一:游戏网站静态资源下载
📱 HTML5/WebGL 游戏站点
适用于 itch.io、Newgrounds、Kongregate 等平台的游戏页面
# 专门针对游戏资源的下载命令
wget -r -np -k -E -p -H -D cdn.example.com,assets.example.com \
-A "*.js,*.html,*.css,*.png,*.jpg,*.jpeg,*.gif,*.svg,*.wasm,*.data,*.unityweb,*.mem" \
--user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" \
https://example-game-site.com/game-page
参数说明:
- •
-H -D
: 允许跨域下载CDN资源 - •
--user-agent
: 模拟真实浏览器避免被拦截 - • 包含Unity WebGL常用文件格式
🕹️ 复古游戏模拟器站点
下载包含ROM文件和模拟器的完整游戏页面
# 包含ROM和模拟器文件
wget -r -np -k -E -p -nd --random-wait --wait=1 \
-A "*.js,*.html,*.css,*.png,*.jpg,*.wasm,*.nes,*.smc,*.gb,*.gbc,*.gba,*.zip" \
--reject="*.exe,*.dmg,*.pkg" \
https://retro-game-site.com
📊 场景二:SEO 分析与竞品研究
🔍 竞品网站结构分析
下载竞品网站用于分析页面结构、关键词布局和内链策略
# SEO分析专用下载命令
wget -r -np -k -E -p --level=3 \
-A "*.html,*.css,*.js,*.xml,*.txt" \
--reject="*.jpg,*.png,*.gif,*.pdf,*.zip" \
--header="Accept: text/html,application/xhtml+xml" \
https://competitor-site.com
SEO 分析要点:
- • 检查
robots.txt
和sitemap.xml
- • 分析页面标题、描述和H标签结构
- • 研究内链分布和锚文本策略
- • 观察页面加载速度和资源优化
📈 内容营销素材收集
批量下载博客文章、产品页面等内容用于市场研究
# 内容营销研究
wget -r -np -k -E -p --level=2 \
-I "/blog/,/articles/,/news/,/resources/" \
-A "*.html,*.css" \
--wait=2 --random-wait \
https://content-rich-site.com
🛒 场景三:电商网站产品页面备份
💰 产品目录与价格监控
定期备份产品页面用于价格追踪和市场分析
# 电商产品页面下载
wget -r -np -k -E -p --level=2 \
-I "/products/,/category/,/shop/" \
-A "*.html,*.css,*.js,*.json" \
--header="Accept-Language: zh-CN,zh;q=0.9,en;q=0.8" \
--wait=3 --random-wait \
https://ecommerce-site.com
电商分析用途:
- • 价格变化趋势分析
- • 产品描述和SEO关键词研究
- • 用户评价和反馈收集
- • 促销活动和营销策略观察
📚 场景四:技术文档与教程备份
📖 开发文档离线化
下载技术文档、API参考和教程用于离线学习
# 技术文档下载
wget -r -np -k -E -p --level=5 \
-I "/docs/,/api/,/tutorial/,/guide/" \
-A "*.html,*.css,*.js,*.pdf,*.md" \
--reject="*.zip,*.tar.gz,*.exe" \
--convert-links \
https://tech-docs-site.com
文档备份优势:
- • 离线访问,不受网络限制
- • 版本控制,追踪文档变化
- • 快速搜索和本地索引
- • 团队共享和知识管理
什么时候需要下载网站源代码?
随着海外游戏市场的兴起,越来越多国人开始运营海外游戏站点。网站源代码下载成为了获取优质游戏资源、学习先进技术的重要手段。
🎮 海外游戏站运营
- • 游戏资源获取:从 itch.io、Newgrounds、Kongregate 等平台下载优质HTML5游戏
- • 本土化运营:下载游戏源码进行中文化改造,适配国内用户习惯
- • 站点搭建:学习海外成功游戏站的页面布局、分类体系和用户体验设计
- • 技术学习:研究WebGL、Unity、Construct等游戏引擎的web实现方式
� 游戏站SEO优化
- • 竞品分析:研究海外头部游戏站如 CrazyGames、Poki 的SEO策略和关键词布局
- • 内容优化:分析游戏描述、标签分类和元数据的优化方法
- • 技术SEO:学习游戏加载优化、页面性能提升和移动端适配
- • 用户体验:研究游戏推荐算法、用户留存策略和社交功能实现
📊 商业情报与市场研究
- • 价格监控:跟踪电商网站的产品价格变化趋势
- • 产品研究:分析竞品的产品描述、特性和定位
- • 市场趋势:收集行业动态和新闻资讯
- • 用户反馈:获取产品评价和用户体验数据
🎓 学术研究与教育
- • 网络行为研究:分析网站结构和用户交互模式
- • 技术教学:为学生提供真实的网站案例分析
- • 数据挖掘:从网站内容中提取有价值的信息
- • 趋势分析:研究网络技术和设计趋势的演变
👤 个人使用场景
- • 离线浏览:保存喜欢的网站内容供离线查看
- • 游戏收藏:备份在线游戏,防止网站关闭丢失
- • 学习资料:下载教程和文档用于深度学习
- • 网站备份:为自己的网站创建完整备份
🔒 安全测试与审计
- • 安全审计:检查网站代码中的潜在安全漏洞
- • 渗透测试:分析网站结构进行安全评估
- • 合规检查:验证网站是否符合相关法规要求
- • 性能分析:评估网站加载速度和资源优化
⚖️ 法律与道德考量
在进行网站源代码下载时,特别是运营海外游戏站的朋友,请务必:
- • 遵守目标网站的
robots.txt
文件和服务条款 - • 尊重游戏版权,确认游戏的授权许可(如 CC、MIT 等开源协议)
- • 避免对服务器造成过大负载,设置合理的访问频率
- • 注意游戏内容的地区适用性,避免涉及敏感内容
- • 建议联系原作者获得正式授权,建立长期合作关系