网站离线下载终极指南

从 Wget 入门到开发者级动态抓取,确保完整备份 WebGL 游戏和动态网站。

步骤一:安装下载工具 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 是一个强大的浏览器自动化工具,可以启动一个真实的浏览器内核来加载网页,并拦截所有动态发出的请求,将其一一保存。这是最彻底、最干净的备份方式。

  1. 安装依赖:

    需要 Node.js 环境。在你的项目文件夹中执行以下命令。

    # 初始化项目
    npm init -y
    # 安装 Playwright
    npm install playwright
  2. 创建并运行脚本:

    创建一个名为 `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. 1
    打开开发者工具并切换到"网络"面板:

    访问目标网页,按 `F12` (或 `Ctrl+Shift+I` / `Cmd+Opt+I`)。在打开的窗口中,点击顶部导航栏的 Network (网络) 选项卡。

  2. 2
    刷新页面并等待加载:

    保持开发者工具打开,刷新网页 (`F5` 或 `Cmd+R`)。等待网站(或游戏)完全加载完毕,确保 Network 面板中不再有新的网络请求出现。

  3. 3
    找到导出按钮并保存:

    这是最关键的一步,根据你的浏览器版本,操作位置略有不同:

    • 传统方法:在请求列表的任意位置点击鼠标右键,在弹出的菜单中选择 Save all as HAR with content
    • 新版 Chrome/Edge:如果右键菜单里没有,请寻找 Network 面板工具栏上的 "Export HAR..." 按钮,它通常是一个向下的箭头图标

    💡 "with content" 至关重要,它确保了所有资源文件(如图片、JS、WASM)本身都被包含在 HAR 文件内,而不仅仅是请求记录。

  4. 4
    提取资源文件:

    保存 HAR 文件后,你可以选择以下两种方式提取资源:

    🌐 推荐:在线HAR解析器

    无需安装任何软件,直接在浏览器中解析HAR文件并提取所有资源:

    使用在线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.txtsitemap.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 等开源协议)
  • • 避免对服务器造成过大负载,设置合理的访问频率
  • • 注意游戏内容的地区适用性,避免涉及敏感内容
  • • 建议联系原作者获得正式授权,建立长期合作关系