**基本用法**:
`httrack <URLs> [-option] [+<URL_FILTER>] [-<URL_FILTER>] [+<mime:MIME_FILTER>] [-<mime:MIME_FILTER>]`
以下为可用选项(`*` 表示默认值):
---
### 🛠 常规选项
`-O` 镜像/日志文件+缓存路径 (`-O 镜像路径[,缓存和日志路径]`) (`--path <参数>`)
---
### ⚙️ 操作选项
`-w` *镜像网站(默认) (`--mirror`)
`-W` 半自动镜像网站(交互式问答) (`--mirror-wizard`)
`-g` 仅获取文件(保存到当前目录) (`--get-files`)
`-i` 使用缓存继续中断的镜像 (`--continue`)
`-Y` 镜像第一级页面中的所有链接 (`--mirrorlinks`)
---
### 🔌 代理选项
`-P` 使用代理 (`-P 代理:端口` 或 `-P 用户:密码@代理:端口`) (`--proxy <参数>`)
`%f` *对 FTP 使用代理(f0=禁用) (`--httpproxy-ftp[=N]`)
`%b` 使用的本地主机名 (`-%b 主机名`) (`--bind <参数>`)
---
### 📏 限制选项
`-rN` 设置镜像深度为 N(默认 `r9999`) (`--depth[=N]`)
`%eN` 设置外部链接深度为 N(默认 `%e0`) (`--ext-depth[=N]`)
`-mN` 非 HTML 文件的最大长度 (`--max-files[=N]`)
`-mN,N2` 非 HTML(N) 和 HTML(N2) 的最大长度
`-MN` 最大总上传/扫描大小 (`--max-size[=N]`)
`-EN` 最大镜像时间(秒)(`--max-time[=N]`)
`-AN` 最大传输速率(字节/秒)(`--max-rate[=N]`)
`%cN` 每秒最大连接数(默认 `%c10`)(`--connection-per-second[=N]`)
`-GN` 传输暂停条件(字节数达到 N 时暂停,直到锁定文件删除)(`--max-pause[=N]`)
---
### 📶 流量控制
`-cN` 多连接数量(默认 `c8`)(`--sockets[=N]`)
`-TN` 超时时间(秒)(`--timeout[=N]`)
`-RN` 重试次数(默认 `R1`)(`--retries[=N]`)
`-JN` 拥塞控制 - 链接最低容忍传输速率(字节/秒)(`--min-rate[=N]`)
`-HN` 主机放弃条件:0=永不,1=超时,2=低速,3=超时或低速(默认)(`--host-control[=N]`)
---
### 🔗 链接选项
`%P` *扩展解析(尝试解析所有链接,包括未知标签和 JS)(`--extended-parsing[=N]`)
`-n` 获取 HTML 文件"附近"的非 HTML 文件(如图片)(`--near`)
`-t` 测试所有 URL(包括禁止访问的)(`--test`)
`%L <文件>` 添加文本文件中的所有 URL(每行一个)(`--list <参数>`)
`%S <文件>` 添加文本文件中的所有扫描规则(每行一个)(`--urllist <参数>`)
---
### 🏗️ 构建选项
`-NN` 结构类型(0=原始结构*, 1+见下文)(`--structure[=N]`)
或自定义结构 (`-N "%h%p/%n%q.%t"`)
`%N` 延迟类型检查(实验性)(`%N0`=禁用, `%N1`=未知扩展时使用, `%N2`*=始终使用)
`%D` 缓存延迟类型检查(更新时不等待远程类型)(`--cached-delayed-type-check`)
`%M` 生成 RFC MIME 封装的全归档(.mht)(`--mime-html`)
`-LN` 长文件名(L1*=长名, L0=8.3格式, L2=ISO9660兼容)(`--long-names[=N]`)
`-KN` 保留原始链接(K0*=相对链接, K=绝对链接, K4=原始链接)(`--keep-links[=N]`)
`-x` 用错误页面替换外部 HTML 链接 (`--replace-external`)
`%x` 不包含外部密码保护网站的密码 (`%x0`=包含) (`--disable-passwords`)
`%q` *包含本地文件的查询字符串 (`%q0`=不包含) (`--include-query-string`)
`-o` *错误时生成输出 HTML(404等)(`-o0`=不生成) (`--generate-errors`)
`-X` *更新后清除旧文件 (`-X0`=保留) (`--purge-old[=N]`)
`%p` 原样保留 HTML 文件(等同于 `-K4 -%F ""`)(`--preserve`)
`%T` 链接转换为 UTF-8 (`--utf8-conversion`)
---
### 🕷️ 爬虫选项
`-bN` 接受 cookies.txt 中的 Cookie(0=拒绝,1*=接受)(`--cookies[=N]`)
`-u` 未知类型时检查文档类型(cgi,asp等)(`--check-type[=N]`)
`-j` *解析 Java 类(位掩码控制)(`--parse-java[=N]`)
`-sN` 遵循 robots.txt 和 meta robots(2*=始终遵守)(`--robots[=N]`)
`%h` 强制 HTTP/1.0 请求(兼容旧服务器/代理)(`--http-10`)
`%k` 尽可能使用 keep-alive(减少延迟)(`--keep-alive`)
`%B` 宽容请求(接受非标准响应)(`--tolerant`)
`%s` 更新优化技巧(减少重复传输)(`--updatehack`)
`%u` URL 优化技巧(减少重复 URL)(`--urlhack`)
`%A` 预设文件类型映射(例:`-%A php3,cgi=text/html`)(`--assume <参数>`)
`@iN` IP 协议(0=IPv6+IPv4, 4=IPv4, 6=IPv6)(`--protocol[=N]`)
`%w` 禁用特定外部 MIME 模块 (`--disable-module <参数>`)
---
### 🌐 浏览器标识
`-F` HTTP 头中的 User-Agent 字段 (`-F "用户代理名"`) (`--user-agent <参数>`)
`%R` 默认 Referer 字段 (`--referer <参数>`)
`%E` From 邮件地址 (`--from <参数>`)
`%F` HTML 页脚字符串 (`-%F "镜像自 [主机 %s [文件 %s [时间 %s]]"`) (`--footer <参数>`)
`%l` 首选语言 (`-%l "zh, en, *"`) (`--language <参数>`)
`%a` 接受格式 (`-%a "text/html,image/png;q=0.9"`) (`--accept <参数>`)
`%X` 额外 HTTP 头 (`-%X "X-Magic: 42"`) (`--headers <参数>`)
---
### 📊 日志/索引/缓存
`-C` 缓存使用策略(C0=无缓存, C1=优先缓存, C2*=更新前测试)(`--cache[=N]`)
`-k` 所有文件存入缓存 (`--store-all-in-cache`)
`%n` 不重新下载本地删除的文件 (`--do-not-recatch`)
`%v` 实时显示下载文件名(`%v1`=简洁, `%v2`=完整动画)(`--display`)
`-Q` 无日志 - 安静模式 (`--do-not-log`)
`-q` 无提问 - 安静模式 (`--quiet`)
`-z` 日志 - 额外信息 (`--extra-log`)
`-Z` 日志 - 调试信息 (`--debug-log`)
`-v` 屏幕日志 (`--verbose`)
`-f` *文件日志(默认)(`--file-log`)
`-f2` 单一日志文件 (`--single-log`)
`-I` *创建索引(`-I0`=不创建)(`--index`)
`%i` 为项目文件夹创建顶层索引 (`%i0`=不创建) (`--build-top-index`)
`%I` 创建可搜索索引 (`%I0`=不创建) (`--search-index`)
---
### ⚡ 高级选项
`-pN` 优先级模式(`p3`*=保存所有文件)(`--priority[=N]`)
`-S` 停留在同一目录 (`--stay-on-same-dir`)
`-D` *仅能进入子目录(默认)(`--can-go-down`)
`-U` 仅能进入上级目录 (`--can-go-up`)
`-B` 可进入上下级目录 (`--can-go-up-and-down`)
`-a` *停留在相同地址(默认)(`--stay-on-same-address`)
`-d` 停留在相同主域名 (`--stay-on-same-domain`)
`-l` 停留在相同顶级域名(如 .com)(`--stay-on-same-tld`)
`-e` 可访问整个网络 (`--go-everywhere`)
`%H` 在日志中调试 HTTP 头 (`--debug-headers`)
---
### 🧠 专家选项(慎用)
`#X` *使用优化引擎(默认)(`--fast-engine`)
`#0` 过滤器测试 (`--debug-testfilters <参数>`)
`#1` 简化测试 (`-#1 ./foo/bar/../foobar`)
`#2` 类型测试 (`-#2 /foo/bar.php`)
`#C` 缓存列表 (`--debug-cache <参数>`)
`#R` 缓存修复(损坏时)(`--repair-cache`)
`#d` 解析器调试 (`--debug-parsing`)
`#E` 从 new.zip 提取缓存元数据到 meta.zip
`#f` 始终刷新日志 (`--advanced-flushlogs`)
`#FN` 最大过滤器数 (`--advanced-maxfilters[=N]`)
`#h` 版本信息 (`--version`)
`#K` 扫描 stdin(调试)(`--debug-scanstdin`)
`#L` 最大链接数 (`--advanced-maxlinks[=N]`)
`#p` 显示详细进度信息 (`--advanced-progressinfo`)
`#P` 捕获 URL (`--catch-url`)
`#T` 每分钟生成传输日志 (`--debug-xfrstats`)
`#u` 等待时间 (`--advanced-wait`)
`#Z` 每分钟生成传输速率统计 (`--debug-ratestats`)
---
### ⚠️ 危险选项(仅专家使用)
`%!` 绕过安全限制(带宽/连接数限制)(`--disable-security-limits`)
**警告**:可能导致带宽滥用,极端谨慎使用!
---
### 📜 命令行专用选项
`-V` 文件下载后执行系统命令(`$0`=文件名)(`--userdef-cmd <参数>`)
`%W` 使用外部库函数作为包装器 (`-%W myfoo.so[,参数]`) (`--callback <参数>`)
---
### 🔍 结构类型详解(-N 参数)
| 值 | 描述 |
|------|-------------------------------|
| N0 | 原始结构(默认) |
| N1 | HTML在web/,其他文件在web/images/ |
| N100 | 原始结构(不含www.domain.xxx/前缀)|
| N199 | 同N99(使用站点名替代web) |
| N1001| 同N1(无web目录) |
---
### 🔗 链接保留模式(-K 参数)
| 值 | 转换示例 | 描述 |
|----|-----------------------------------|--------------------|
| K0 | `foo.cgi?q=45` → `foo4B54.html?q=45` | 相对URI(默认) |
| K | 保留完整绝对URL | 绝对URL |
| K3 | `/folder/foo.cgi?q=45` | 绝对URI |
| K4 | `foo.cgi?q=45` | 原始URL |
| K5 | `http://.../foo4B54.html?q=45` | 透明代理URL |
---
### 🚀 快捷命令
```bash
httrack --mirror <URL> # 镜像网站(默认)
httrack --get <URL> # 仅获取文件(-qg)
httrack --list urls.txt # 从文件添加URL(-%L)
httrack --mirrorlinks <URL> # 镜像第一级链接(-Y)
httrack --testlinks <URL> # 测试页面链接(-r1p0C0I0t)
httrack --spider <URL> # 爬虫模式(仅测试链接)
httrack --skeleton <URL> # 仅获取HTML文件(-p1)
httrack --update # 更新镜像(无确认)
httrack --continue # 继续镜像(无确认)
httrack --clean # 清除缓存和日志
安装:
CentOS 8+ 用 dnf
sudo dnf install httrack
CentOS 7 用 yum
sudo yum install httrack
发表评论 取消回复