返回博客

如何使用 HTTrack 一条命令备份整个网站

2025-02-133 分钟阅读

您是否曾经想过保存整个网站以供离线浏览?也许您需要保存重要的文档,备份自己的网站,或者保存教育内容以供离线访问。HTTrack 是一个免费工具,可以非常轻松地完成这项工作,我将向您展示如何仅用一个命令来实现。

什么是 HTTrack?

HTTrack 就像是网站的时光机。它会创建一个网站的精确副本,您可以在计算机上离线浏览。您可以将其想象成网站的快照,即使没有互联网连接,您也可以随时访问。

您需要的唯一命令

这是下载整个网站的神奇命令:

httrack "https://website-to-copy.com" -O "./website_backup" -%v

让我们用简单的术语来解释一下它的含义:

  • httrack:启动程序
  • "https://website-to-copy.com":将其替换为您要备份的网站
  • -O "./website_backup":这将创建一个名为 'website_backup' 的新文件夹,所有文件都将保存在其中
  • -%v:在工作时显示进度

如何开始

步骤 1:安装 HTTrack

在使用命令之前,您需要安装 HTTrack。它是免费的,适用于 Windows、Mac 和 Linux:

  • Windows:从官方 HTTrack 网站下载安装程序
  • Mac:使用 Homebrew 并输入:brew install httrack
  • Linux:使用您的包管理器:sudo apt-get install httrack (Ubuntu/Debian)

步骤 2:运行命令

打开您的终端或命令提示符,导航到您要保存网站的位置,然后运行上述命令(将示例 URL 替换为您的目标网站)。

接下来会发生什么?

HTTrack 将开始下载网站。根据网站的大小,这可能需要几分钟到几个小时。您将看到一个进度指示器显示:

  • 已下载的文件数量
  • 当前的下载速度
  • 预计剩余时间

访问您的离线网站

下载完成后,您会发现一个名为 'website_backup'(或您选择的任何名称)的新文件夹。在里面,找到 'index.html' 并在您的网络浏览器中打开它。现在您可以像在线浏览一样浏览整个网站了!

处理受保护的网站(WAF 绕过)

一些网站使用 Web 应用程序防火墙 (WAF),它们会阻止像 HTTrack 这样的自动化爬虫。如果您遇到访问被拒绝的错误或下载失败,可以使用自定义标头使 HTTrack 看起来更像一个常规浏览器。

什么是标头? 标头是您的浏览器在每次请求时发送给网站的信息片段,就像一张身份证,上面写着“我是 Mac 上的 Firefox,我讲英语,我可以处理 HTML 文件。” WAF 会检查这些信息来识别机器人。

httrack "https://website-to-copy.com" \
-O "./website_backup" \
-H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \
-H "Accept-Language: en-US,en;q=0.5" \
-H "Accept-Encoding: gzip, deflate, br, zstd" \
-H "Update-Insecure-Requests: 1" \
-H "DNT: 1" \
-H "Sec-Fetch-Dest: document" \
-H "Sec-Fetch-Mode: navigate" \
-H "Sec-Fetch-Site: none" \
-H "Sec-Fetch-User: ?1" \
-H "Sec-GPC: 1" \
--user-agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:142.0) Gecko/20100101 Firefox/142.0" \
-%v

以下是每个标头的作用:

  • Accept:告诉服务器浏览器可以处理哪些文件类型(HTML、XML 等)
  • Accept-Language:指示首选语言(此处为英语)
  • Accept-Encoding:显示浏览器支持哪些压缩方法
  • Update-Insecure-Requests:指示浏览器更喜欢 HTTPS 而不是 HTTP
  • DNT:“请勿跟踪”隐私偏好
  • Sec-Fetch-Dest:指示请求的目标(此处为文档)
  • Sec-Fetch-Mode:显示请求模式(页面导航的 navigate)
  • Sec-Fetch-Site:指示请求来源和目标之间的关系
  • Sec-Fetch-User:显示请求是否由用户激活触发
  • Sec-GPC:全局隐私控制信号
  • User-agent:将浏览器标识为 Firefox 到网站

这些标头使 HTTrack 看起来像一个合法的 Firefox 浏览器,而不是一个自动化爬虫,有助于绕过基本的机器人检测系统。

恢复中断的下载

HTTrack 最好的功能之一是能够恢复中断的下载。如果您的互联网连接中断或您需要停止下载,HTTrack 会自动将其进度保存在缓存文件中。

要恢复下载,只需再次运行完全相同的命令。HTTrack 将:

  • 检测输出目录中现有的项目文件
  • 检查哪些页面已被下载
  • 从上次中断的地方继续,而无需重新下载已完成的文件
  • 更新自上次下载以来可能已更改的任何页面

HTTrack 在您的项目目录中创建了几个跟踪文件:

  • hts-cache/:包含下载缓存和进度信息
  • hts-log.txt:所有下载活动的详细日志
  • *.ndx 文件:跟踪哪些 URL 已被处理的索引文件

这使得 HTTrack 非常适合在多个会话中下载大型网站,尤其是在互联网连接不可靠或大型网站需要数小时才能完成的情况下非常有用。

重要提示

  • 始终检查您是否有权下载网站
  • 对于大型网站要有耐心,它们需要更长的时间来下载
  • 确保您的计算机上有足够的存储空间
  • 某些网站可能有阻止完整复制的限制
  • 如果基本命令失败,请尝试使用自定义标头的 WAF 绕过版本
  • 负责任地使用标头并遵守速率限制,以避免使服务器过载
  • 如果您计划稍后恢复或更新下载,请不要删除 hts-cache 文件夹

常见用途

人们出于多种目的使用 HTTrack:

  • 备份自己的网站
  • 保存重要的文档以供离线参考
  • 归档可能消失的网站
  • 创建教育资源的离线副本

请记住,在使用此工具时,始终要尊重网站所有者的权利和服务条款。