wget 参数说明
目录
Wget 1.21.1-手册
此文件记录了用于下载网络的GNU Wget实用程序数据。
版权所有 © 1996–2011, 2015, 2018–2021 自由软件基金会公司
授予复制、分发和/或修改本文档的权限根据 GNU 自由文档许可证的条款,版本 1.3 或自由软件基金会发布的任何更高版本;没有固定部分,没有封面文本,也没有封底文本。许可证的副本包含在标题为“的部分中“GNU 自由文档许可证”。
| • 概述 | Wget的特点。 |
| • 调用 | wget 命令行参数。 |
| • 递归下载 | 下载相互链接的页面。 |
| • 以下链接 | 追踪链接的可用方法。 |
| • 时间戳 | 根据时间戳进行镜像。 |
| • 启动文件 | Wget 的初始化文件。 |
| • 示例 | 用法示例。 |
| • 各种 | 不适合其他任何地方的东西。 |
| • 附录 | 一些有用的参考资料。 |
| • 复制本手册 | 您可以提供本手册的副本。 |
| • 概念指数 | 本手册涵盖的主题。 |
1 概述
GNU Wget 是一个免费的实用程序,用于非交互式下载文件 网络。它支持 HTTP、HTTPS 和 FTP 协议,如 以及通过 HTTP 代理进行检索。
本章是对 Wget 功能的部分概述。
- Wget 是非交互式的,这意味着它可以在后台工作, 当用户未登录时。这允许您开始检索 并断开与系统的连接,让 Wget 完成工作。由 相比之下,大多数 Web 浏览器需要持续的用户存在, 在传输大量数据时,这可能是一个很大的障碍。
- Wget 可以跟踪 HTML、XHTML 和 CSS 页面中的链接,以 创建远程网站的本地版本,完全重新创建 原始站点的目录结构。这有时被称为 作为“递归下载”。在这样做的同时,Wget尊重机器人。 排除标准 ()。可以指示 Wget 将下载文件中的链接转换为指向本地文件,用于 离线查看。/robots.txt
- 文件名通配符匹配和目录的递归镜像是 通过 FTP 检索时可用。Wget 可以读取时间戳 HTTP和FTP服务器提供的信息,并存储它 本地。因此,Wget 可以查看远程文件自上次以来是否发生了更改 检索,并自动检索新版本(如果有)。这 使 Wget 适用于 FTP 站点的镜像,以及家庭 .pages。
- Wget 专为在慢速或不稳定的网络上的鲁棒性而设计 连接;如果下载由于网络问题而失败,它将 继续重试,直到检索到整个文件。如果服务器 支持重新获取,它会指示服务器继续 从中断的地方下载。
- Wget支持代理服务器,可以减轻网络负载,速度 向上检索并提供防火墙后面的访问。Wget默认使用被动FTP下载,主动FTP是一个选项。
- Wget 支持 IP 版本 6,即下一代 IP。IPv6 是 在编译时自动检测,并且可以在构建或 运行时。使用 IPv6 支持构建的二进制文件在两者中都能很好地工作 仅 IPv4 和双系列环境。
- 内置功能提供了调整您希望关注的链接的机制 (请参阅以下链接)。
- 使用进度计跟踪单个下载的进度。 交互式下载使用“温度计”式仪表进行跟踪, 而非交互式的则用点跟踪,每个点 表示接收的固定数据量(默认为 1KB)。也 仪表可以根据您的喜好进行定制。
- 大多数功能都是完全可配置的,无论是通过命令行 选项,或通过初始化文件(请参阅启动文件)。Wget 允许您定义全局启动文件 (默认情况下)的站点设置。你也可以 使用 –config 选项指定启动文件的位置。 要禁用配置文件的读取,请使用 –no-config。 如果同时给出 –config 和 –no-config,则忽略 –no-config。.wgetrc/usr/local/etc/wgetrc
- 最后,GNU Wget 是自由软件。这意味着每个人都可以使用 它,根据GNU通用条款重新分发和/或修改它 公共许可证,由自由软件基金会发布(参见 GNU Wget 附带的文件,有关详细信息)。COPYING
2 调用
默认情况下,Wget 的调用非常简单。基本语法为:
wget [option]… [URL]…
Wget 将简单地下载命令中指定的所有 URL 线。 是统一资源定位器,定义如下。URL
但是,您可能希望更改 哇哇。您可以通过两种方式执行此操作:永久添加适当的 命令(请参阅启动文件),或将其指定在 命令行。.wgetrc
| • 网址格式 |
| • 选项语法 |
| • 基本启动选项 |
| • 日志记录和输入文件选项 |
| • 下载选项 |
| • 目录选项 |
| • HTTP 选项 |
| • HTTPS (SSL/TLS) OPTIONS |
| • FTP 选项 |
| • 递归检索选项 |
| • 递归接受/拒绝选项 |
| • 退出状态 |
2.1 网址格式
URL 是统一资源定位器的首字母缩写。制服资源定位器是资源的紧凑字符串表示形式可通过互联网获得。Wget 根据RFC1738识别 URL 语法。这是使用最广泛的形式(方括号表示可选部件):
http://host[:port]/directory/file ftp://host[:port]/directory/file
您还可以在 URL 中对用户名和密码进行编码:
ftp://user:password@host/path http://user:password@host/path
或 或两者兼而有之,可以省略。如果你 省略 HTTP 用户名或密码,无需身份验证 将被发送。如果省略 FTP 用户名,则“” 将被使用。如果您遗漏了FTP密码,您的电子邮件 地址将作为默认密码提供。1userpasswordanonymous
重要说明:如果在命令行上指定包含密码的 URL,用户名和密码将清晰可见 通过 向系统上的所有用户发送。在多用户系统上, 这是一个很大的安全风险。要解决此问题,请使用 URL 并将其提供给 Wget 的标准输入,每个 URL都在单独的 行,以 终止。pswget -i -C-d
您可以将 URL 中的不安全字符编码为 '',即字符 ASCII 值的十六进制表示形式。一些常见的不安全字符包括 ''(引用为 “”)、“(引用为 ”“)和”“(引用为 '').有关不安全的完整列表,请参阅RFC1738 字符。%xyxy%%25:%3A@%40
Wget 还支持 FTP URL的功能。由 默认情况下,在二进制模式下检索 FTP 文档(类型 ''),这意味着它们下载时保持不变。另一个 有用的模式是“”(ASCII)模式,它转换行 不同操作系统之间的分隔符,因此很有用 对于文本文件。下面是一个示例:typeia
ftp://host/directory/file;type=a
还支持 URL 规范的两种替代变体, 由于历史(歇斯底里?)原因及其广泛使用。
仅 FTP 语法(由 支持):NcFTP
host:/dir/file
仅 HTTP 语法(由 引入):Netscape
host[:port]/dir/file
这两种替代形式已被弃用,并且可能不再 将来支持。
如果您不了解这些符号之间的区别,或者 不知道该用哪一个,只用你用的普通格式 使用您喜欢的浏览器,例如 或 .LynxNetscape
2.2 选项语法
由于 Wget 使用 GNU getopt 来处理命令行参数,因此每个 选项有长形式和短形式。长选项是 记忆起来更方便,但需要时间来打字。您可以自由地 混合不同的选项样式,或在命令行后指定选项 参数。因此,您可以写:
wget -r --tries=10 http://fly.srk.fer.hr/ -o log
接受参数的选项和参数之间的空格可能 被省略。您可以写“代替””。-o log-olog
您可以将几个不需要参数的选项放在一起, 喜欢:
wget -drc URL
这完全等同于:
wget -d -r -c URL
由于可以在参数之后指定选项,因此您可以 用 '' 终止它们。所以下面会尝试下载网址'',报告失败:---xlog
wget -o log -- -x
接受逗号分隔列表的选项都遵循约定 指定空列表将清除其值。这可能对 清除设置。例如,如果您设置为 ,则以下内容 示例将首先重置它,然后将其设置为排除和。您还可以清除 中的列表(请参阅 Wgetrc 语法)。.wgetrc.wgetrcexclude_directories/cgi-bin/~nobody/~somebody.wgetrc
wget -X '' -X /~nobody,/~somebody
大多数不接受参数的选项都是布尔选项, 之所以如此命名,是因为可以用是或否来捕获他们的状态 (“布尔”)变量。例如,“”告诉 Wget 跟踪来自 HTML 文件的 FTP 链接,另一方面, '' 告诉它不要对 FTP URL 执行文件通配。一个 布尔选项是肯定的或否定的(以 '' 开头)。所有这些选项共享几个 性能。--follow-ftp--no-glob--no
除非另有说明,否则假定默认行为为 与该选项完成的效果相反。例如, 记录的 '' 存在假定默认值 是不遵循来自 HTML 页面的 FTP 链接。--follow-ftp
肯定选项可以通过在前面加上“”来否定 选项名称;否定选项可以通过省略 “”前缀。这可能看起来是多余的 - 如果默认值 一个肯定的选择是不做某事,那么为什么要提供一种方法 明确关闭它?但启动文件实际上可能会更改 默认值。例如,使用 in 使 Wget 默认遵循 FTP 链接,以及 使用“”是恢复出厂的唯一方法 命令行中的默认值。--no---no-follow_ftp = on.wgetrc--no-follow-ftp
2.3 基本启动选项
- -V
- --version
-
显示 Wget 的版本。
- -h
- --help
-
打印一条帮助消息,描述 Wget 的所有命令行选项。
- -b
- --background
-
启动后立即转到后台。如果没有输出文件 通过 '' 指定,输出将重定向到 。-owget-log
- -e command
- --execute command
-
像是 的一部分一样执行(请参阅启动文件)。这样调用的命令将在 中的命令之后执行,因此优先于 他们。如果需要指定多个 wgetrc 命令,请使用多个 “”的实例。command.wgetrc.wgetrc-e
2.4 日志记录和输入文件选项
- -o logfile
- --output-file=logfile
-
将所有消息记录到 。通常报告消息 到标准误差。logfile
- -a logfile
- --append-output=logfile
-
追加到 。这与“”相同,只是它附加了 而不是覆盖旧的日志文件。如果不存在,则创建一个新文件。logfile-ologfilelogfile
- -d
- --debug
-
打开调试输出,这意味着对 Wget 的开发人员,如果它不能正常工作。您的系统 管理员可能已选择在没有调试支持的情况下编译 Wget,在 哪种情况“”将不起作用。请注意,编译 调试支持始终是安全的 — 使用调试支持编译的 Wget 不会打印任何调试信息,除非使用“”请求。 有关如何将 '' 用于 发送错误报告。-d-d-d
- -q
- --quiet
-
关闭 Wget 的输出。
- -v
- --verbose
-
打开详细输出,其中包含所有可用数据。默认输出 很啰嗦。
- -nv
- --no-verbose
-
关闭冗长而不完全安静(使用 '' 表示 ),这意味着错误消息和基本信息仍然得到 印刷。-q
- --report-speed=type
-
输出带宽为 .唯一接受的值是“”。typebits
- -i file
- --input-file=file
-
从本地或外部 读取 URL 的 URL。如果 '' 是 指定为 ,从标准输入中读取 URL。 (使用“”从字面上名为“”的文件读取。file-file./--
如果使用此功能,则命令上不需要存在 URL 线。如果命令行和输入中都有 URL 文件,命令行上的那些将是第一个 检索。如果未指定“”,则应由一系列 URL 组成,每行一个。--force-htmlfile
但是,如果指定 '',则文档将是 视为“”。在这种情况下,您可能会遇到以下问题 相对链接,您可以通过添加到文档或指定来解决 '' 在命令行上。--force-htmlhtml
<base href="url">--base=url如果是外部文档,则文档将自动 如果内容类型与“”匹配,则被视为“”。 此外,的位置将隐式用作基 href 如果未指定。filehtmltext/htmlfile
- --input-metalink=file
-
下载本地元链接中涵盖的文件。元链接版本 3 支持 4 个。file
- --keep-badhash
-
用错误的哈希保持下载的元链接文件。它附加 .badhash 到校验和不匹配的 Metalink 文件的名称,除了 不覆盖现有文件。
- --metalink-over-http
-
发出 HTTP HEAD 请求而不是 GET 并提取 Metalink 元数据 从响应标头。然后它切换到元链接下载。 如果未找到有效的元链接元数据,它将回退到普通的HTTP下载。 启用“”文件下载/处理。Content-Type: application/metalink4+xml
- --metalink-index=number
-
设置元链接 '' 元网址序号 数。从 1 到“application/metalink4+xml”的总数 可用。指定 0 或 '' 以选择第一个好的。 元网址(例如来自“”的元网址)可能具有 按优先级键的值排序;请记住这一点以选择 正确的号码。application/metalink4+xmlinf--metalink-over-http
- --preferred-location
-
设置元链接资源的首选位置。这在多个情况下有效 具有相同优先级的资源可用。
- --xattr
-
启用使用文件系统的扩展属性来保存 原始 URL 和引用 HTTP 标头值(如果使用)。
请注意,该 URL 可能包含私人信息,例如 访问令牌或凭据。
- -F
- --force-html
-
从文件中读取输入时,强制将其视为 HTML 文件。这使您能够通过添加到 HTML 或使用 '' 命令行从本地磁盘上的现有 HTML 文件中检索相对链接 选择。
<base href="url">--base - -B URL
- --base=URL
-
解析相对链接,用作参考点, 从通过 “/”选项(与 “”,或者当输入文件是从远程获取时 将其描述为 HTML 的服务器)。这相当于 HTML 输入文件中存在标记,作为属性的值。URL-i--input-file--force-html
BASEURLhref例如,如果为 指定 '',并且 Wget 从输入文件中读取 '',则 将解析为“”。http://foo/bar/a.htmlURL../baz/b.htmlhttp://foo/baz/b.html
- --config=FILE
-
指定要使用的启动文件的位置,而不是 默认的。使用 –no-config 禁用配置文件的读取。 如果同时给出 –config 和 –no-config,则忽略 –no-config。
- --rejected-log=logfile
-
将所有 URL 拒绝记录为逗号分隔值。价值观 包括拒绝原因、URL 和在其中找到它的父 URL。logfile
下一页: 目录选项, 上一篇: 日志记录和输入文件选项, 上一篇: 调用 [内容][索引]
2.5 下载选项
- --bind-address=ADDRESS
-
建立客户端 TCP/IP 连接时,绑定到 on 本地计算机。 可以指定为主机名或 IP 地址。如果计算机绑定到多个计算机,则此选项可能很有用 知识产权。ADDRESSADDRESS
- --bind-dns-address=ADDRESS
-
[仅库卡] 此地址将覆盖 DNS 请求的路由。如果你需要 规避 /etc/resolv.conf 中的标准设置,此选项一起 用“”是你的朋友。 必须指定为 IPv4 或 IPv6 地址。 Wget 需要使用 libcares 构建,此选项才可用。--dns-serversADDRESS
- --dns-servers=ADDRESSES
-
[仅库卡] 给定的地址将覆盖标准名称服务器 地址,例如在 /etc/resolv.conf 中配置的地址。 可以指定为 IPv4 或 IPv6 地址, 逗号分隔。 Wget 需要使用 libcares 构建,此选项才可用。ADDRESSES
- -t number
- --tries=number
-
将尝试次数设置为 。指定 0 或 '' 表示 无限重试。默认值为重试 20 次,但 致命错误,如“连接被拒绝”或“未找到”(404), 不会重试。numberinf
- -O file
- --output-document=file
-
文档不会写入相应的文件,但所有 将连接在一起并写入 。如果 '' 用作,文档将打印为标准输出, 禁用链接转换。(使用“”打印到文件 字面意思是“”。file-file./--
使用“”并不意味着简单地表示“使用名称而不是URL中的名称”;相反,它是 类似于外壳重定向: '' 旨在像 ''; 将被截断 立即,所有下载的内容都将写入那里。-Ofilewget -O file http://foowget -O - http://foo > filefile
因此,不支持“”(用于时间戳检查) 与 '' 结合使用:因为总是新的 创建时,它将始终具有非常新的时间戳。警告将是 如果使用此组合,则发出。-N-Ofile
同样,将“”或“”与“”一起使用可能不起作用 你期望:Wget 不会只是将第一个文件下载到 和 然后将其余部分下载到其正常名称:全部下载 内容将放置在 中。这在版本中被禁用 1.11,但在 1.11.2 中已恢复(带有警告),因为有 在某些情况下,此行为实际上可能有一些用途。-r-p-Ofilefile
仅当给定输出时才接受与“”的组合 文件不存在。-nc
请注意,只有在以下情况下才允许与“”组合 下载单个文档,因为在这种情况下,它只会转换 与外部 URI 的所有相对 URI;'' 没有意义 多个 URI,当它们全部下载到单个文件时; 仅当输出为常规文件时,才能使用“”。-k-k-k
- -nc
- --no-clobber
-
如果一个文件在同一目录中被多次下载,Wget 的 行为取决于几个选项,包括“”。在某些 在这种情况下,本地文件将被破坏或覆盖,在 重复下载。在其他情况下,它将被保留。-nc
在没有“”、“”、“”或“的情况下运行 Wget 时 '',将在同一目录中下载相同的文件 在保存的原始副本和第二副本中 被命名为“”。如果该文件已下载 同样,第三个副本将命名为“”,依此类推。 (这也是使用“”的行为,即使“”或 “生效。指定“”时,此行为 被禁止,Wget 将拒绝下载更新的副本 ''.因此,“”实际上是一个 在这种模式下用词不当 - 阻止的不是破坏(因为 数字后缀已经防止了破坏),而是 阻止了多版本保存。-N-nc-r-pfilefile.1file.2-nd-r-p-ncfile
no-clobber当运行带有“”或“”但没有“”的Wget时, “”或“,重新下载文件将导致 新副本只是覆盖旧副本。添加“”将阻止 此行为,而是导致保留原始版本 以及要忽略的服务器上任何较新的副本。-r-p-N-nd-nc-nc
当运行带有“”的Wget时,带或不带“”或 '',决定是否下载较新的副本 取决于本地和远程时间戳以及 文件(请参阅时间戳)。“”可能未在 与“”同时。-N-r-p-nc-N
仅接受与“/”的组合 如果给定的输出文件不存在。-O--output-document
请注意,当指定 '' 时,带有后缀的文件 “”或“将从本地磁盘加载,并且 解析得好像它们是从 Web 上检索到的。-nc.html.htm
- --backups=backups
-
在(过度)写入文件之前,通过添加 文件名的后缀“”(在 VMS 上为“)。此类备份 文件将旋转到“”、“”等,直到(超过此范围会丢失)。.1_1.2.3backups
- --no-netrc
-
不要尝试从文件中获取凭据。默认情况下,如果文件没有凭据,则会搜索凭据 在命令行上传递,并且需要身份验证。.netrc.netrc
- -c
- --continue
-
继续获取部分下载的文件。这在以下情况下很有用 想要完成由以前的 Wget 实例启动的下载,或者 通过另一个程序。例如:
wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z
如果当前目录中有名为的文件,Wget 将假定它是远程文件的第一部分,并且将 要求服务器继续从等于 本地文件的长度。ls-lR.Z
请注意,如果您只需要 当前调用 Wget 重试下载文件应 连接在中途丢失。这是默认行为。 '' 仅影响恢复之前开始的下载 这是对 Wget 的调用,其本地文件仍然存在。-c
如果没有 '',前面的示例将只下载远程 文件 到 ,保留截断的文件 独自。-cls-lR.Z.1ls-lR.Z
如果在非空文件上使用 '',并且服务器不支持 继续下载,Wget 会从头开始重新下载并覆盖 完全是现有文件。-c
从 Wget 1.7 开始,如果您在 与服务器上的大小相同,Wget 将拒绝下载 文件并打印解释性消息。当文件发生时也会发生同样的情况 在服务器上比本地小(大概是因为它被更改了 自上次尝试下载以来的服务器上)— 因为“继续” 没有意义,不发生下载。-c
在硬币的另一面,当使用“”时,任何文件 服务器上大于本地将被视为不完整 下载,只有字节 下载并粘贴到本地文件的末尾。此行为可以 在某些情况下是可取的 - 例如,您可以使用“” 仅下载附加到数据的新部分 集合或日志文件。-c
(length(remote) - length(local))wget -c但是,如果服务器上的文件更大,因为它已被更改,而不是仅仅附加到,你最终会 带有乱码文件。Wget 无法验证本地文件是否 实际上是远程文件的有效前缀。你需要特别 将“”与“”结合使用时要小心, 因为每个文件都将被视为“不完整下载”候选文件。-c-r
另一个实例,如果您尝试使用 '' 是如果你有一个蹩脚的 HTTP 代理插入 “传输中断”字符串到本地文件中。在未来 可以添加“回滚”选项来处理这种情况。-c
请注意,“”仅适用于 FTP 服务器和支持标头的 HTTP 服务器。-c
Range - --start-pos=OFFSET
-
从零开始下载。偏移量可以表示 以字节为单位,带有“k”后缀的千字节,或带有“m”后缀的兆字节等。OFFSET
“”的优先级高于“”。什么时候 '' 和 '' 都被指定了,wget 将发出一个 警告,然后继续,就好像“”不存在一样。--start-pos--continue--start-pos--continue--continue
需要服务器支持才能继续下载,否则需要“” 无能为力。有关详细信息,请参阅“”。--start-pos-c
- --progress=type
-
选择要使用的进度指示器的类型。法律 指标是“点”和“条”。
默认情况下使用“条形”指示器。它绘制 ASCII 进度 条形图形(又名“温度计”显示)指示状态 检索。如果输出不是 TTY,则“点”条将由 违约。
使用“”切换到“点”显示。它追踪 通过在屏幕上打印点进行检索,每个点代表一个 固定的下载数据量。--progress=dot
进度还可以采用一个或多个参数。参数 因所选内容而异。要传递的参数 将它们附加到由冒号(:)表示的类型喜欢这个: ''.typetypetype--progress=type:parameter1:parameter2
使用虚线检索时,您可以通过以下方式设置样式 将类型指定为 ''。不同的样式分配 一个点的含义不同。与样式每个点 表示 1K,一个簇中有 50 个点,一条线中有 8 个点。 该样式具有更像“计算机”的方向 - 16K 点,48 点簇和每行 384 个点(即 64K 行)。风格适合下载大 文件 - 每个点代表检索到 48K,一个中有八个点 聚类,每行上有 3 个点(因此每行包含 1M)。 如果还不够,则可以使用该样式 - 每个点代表检索到的 32M,其中有八个点 簇,每行 32 个点(因此每行包含 <>M)。dot:style
defaultbinarymegamegagiga对于 '',当前有两个可能的参数,和 .--progress=barforcenoscroll
当输出不是 TTY 时,进度条总是回退到“点”, 即使在调用期间将 '' 传递给 Wget。这 行为可以被覆盖,并使用“力”强制“输出 参数为 ''。--progress=bar--progress=bar:force
默认情况下,“”样式进度条滚动文件名 如果文件名超过最大值,则从左到右表示要下载的文件 为其显示分配的长度。在某些情况下,例如 '',可能不希望滚动文件名在 进度条。通过传递 “noscroll” 参数,Wget 可以强制 显示尽可能多的文件名,而不滚动浏览它。bar--progress=bar:force
请注意,您可以使用 中的命令设置默认样式。该设置可能会从 命令行。例如,要强制输出条形而不滚动, 使用“”。
progress.wgetrc--progress=bar:force:noscroll - --show-progress
-
强制 wget 以任何详细程度显示进度条。
默认情况下,wget 仅以详细模式显示进度条。一个可能 但是,希望 WGET 在屏幕上显示进度条与 任何其他详细模式,如“”或“”。这 在调用 wget 下载几个小/大时,通常是所需的属性 文件。在这种情况下,可以简单地使用此参数调用 wget 来获取 屏幕上的输出更加干净。--no-verbose--quiet
此选项还将强制进度条打印到 与“”选项一起使用。stderr--output-file
- -N
- --timestamping
-
启用时间戳。有关详细信息,请参阅时间戳。
- --no-if-modified-since
-
不要在“”模式下发送 If-Modified-Since 标头。发送初步头 请求。这仅在“”模式下有效。-N-N
- --no-use-server-timestamps
-
不要按服务器上的时间戳设置本地文件的时间戳。
默认情况下,下载文件时,其时间戳设置为 匹配远程文件中的那些。这允许使用 '',关于 WGET 的后续调用。然而,它 有时对于将本地文件的时间戳基于其时间很有用 实际下载;为此, 已提供“”选项。--timestamping--no-use-server-timestamps
- -S
- --server-response
-
打印 HTTP 服务器发送的标头和 FTP 服务器发送的响应。
- --spider
-
当使用此选项调用时,Wget 将表现为网络蜘蛛, 这意味着它不会下载页面,只需检查它们 有吗。例如,您可以使用 Wget 检查您的书签:
wget --spider --force-html -i bookmarks.html
这个功能需要更多的工作才能让 Wget 接近 真实网络蜘蛛的功能。
- -T seconds
- --timeout=seconds
-
将网络超时设置为秒。这是等效的 指定 ''、'' 和 “,同时出现。seconds--dns-timeout--connect-timeout--read-timeout
与网络交互时,Wget 可以检查超时和 如果操作时间过长,请中止操作。这可以防止异常 就像挂起阅读和无限连接一样。唯一启用的超时 默认值为 900 秒读取超时。将超时设置为 0 将禁用 它完全。除非你知道自己在做什么,否则最好不要 更改默认超时设置。
所有与超时相关的选项都接受十进制值,以及 亚秒级值。例如,“”秒是合法的(尽管 不明智)选择超时。亚秒级超时对于检查很有用 服务器响应时间或用于测试网络延迟。0.1
- --dns-timeout=seconds
-
将 DNS 查找超时设置为秒。DNS 查找 未在指定时间内完成将失败。默认情况下,有 在 DNS 查找上没有超时,除了系统实现的超时 图书馆。seconds
- --connect-timeout=seconds
-
将连接超时设置为秒。TCP 连接 建立时间更长的时间将中止。默认情况下,没有 连接超时,而不是系统库实现的超时。seconds
- --read-timeout=seconds
-
将读取(和写入)超时设置为秒。这 此超时的“时间”是指空闲时间:如果,在 下载时,没有收到超过指定数量的数据 秒,读取失败并重新启动下载。此选项 不会直接影响整个下载的持续时间。seconds
当然,远程服务器可以选择终止连接 比此选项要求的要早。默认读取超时为 900 秒。
- --limit-rate=amount
-
将下载速度限制为每秒字节数。金额可能 以字节、带“”后缀的千字节或兆字节表示 带有“”后缀。例如,“”将 将检索速率限制为 20KB/s。这在以下情况下很有用 原因,您不希望 Wget 消耗整个可用带宽。amountkm--limit-rate=20k
此选项允许使用十进制数,通常结合使用 带有幂后缀;例如,“”是合法的 价值。--limit-rate=2.5k
请注意,Wget 通过适当的睡眠来实现限制 网络读取后花费的时间少于指定时间的时间量 按费率。最终,此策略会导致 TCP 传输变慢 低至大约指定的速率。但是,可能需要一些 实现这种平衡的时间,所以如果限制,请不要感到惊讶 该速率不适用于非常小的文件。
- -w seconds
- --wait=seconds
-
在检索之间等待指定的秒数。用途 建议使用此选项,因为它通过使 请求频率较低。时间可以是秒,而不是秒 使用后缀以分钟为单位指定,使用后缀以小时为单位,或使用后缀以天为单位指定。
mhd如果网络或 目标主机已关闭,以便 Wget 可以等待足够长的时间 合理地期望在重试之前修复网络错误。这 此函数指定的等待间隔受 的影响,请参见。
--random-wait - --waitretry=seconds
-
如果您不希望 Wget 在每次检索之间等待,而只是 在重试失败的下载之间,可以使用此选项。威格特将 使用线性退避,在 给定文件,然后在第二次失败后等待 1 秒 文件,最多不超过您指定的最大数量。seconds
默认情况下,Wget 将假定值为 10 秒。
- --random-wait
-
某些网站可能会执行日志分析以识别检索程序 例如 Wget 通过寻找统计上显着的相似性 请求之间的时间。此选项会导致请求之间的时间 在 0.5 到 1.5 * 秒之间变化,其中 使用 '' 选项指定,以掩盖 Wget 的 从这样的分析中存在。waitwait--wait
2001 年,在一份出版物上发表的一篇文章专门讨论关于流行 消费者平台提供了代码来动态执行此分析。 它的作者建议在C类地址级别进行阻塞,以确保 尽管更改了 DHCP 提供的自动检索程序,但自动检索程序仍被阻止 地址。
“”选项的灵感来自这个不明智的 建议阻止许多不相关的用户访问网站,因为 一个人的行动。--random-wait
- --no-proxy
-
不要使用代理,即使环境合适 变量已定义。
*_proxy请参阅代理,了解有关使用 哇哇。
- -Q quota
- --quota=quota
-
指定自动检索的下载配额。该值可以是 以字节(默认值)、千字节(带 '' 后缀)或 兆字节(带“”后缀)。km
请注意,配额永远不会影响下载单个文件。所以如果你 指定 '',将下载所有内容。即使在命令行上指定了多个 URL也是如此。仅检查配额 在每个下载文件的末尾,因此它永远不会导致部分 下载的文件。因此,您可以安全地键入“”—下载 将在完全耗尽配额的文件后中止 下载。wget -Q10k https://example.com/ls-lR.gzls-lR.gzwget -Q2m -i sites
将配额设置为 0 或“”可取消下载配额的限制。inf
- --no-dns-cache
-
关闭 DNS 查找的缓存。通常,Wget 会记住 IP 它从 DNS 查找的地址,因此不必重复 联系 DNS 服务器以获取相同(通常为小型)主机集 检索自。此缓存仅存在于内存中;新的 Wget 运行将 再次联系 DNS。
但是,据报道,在某些情况下并非如此 需要缓存主机名,即使在 像 Wget 这样的短期运行应用程序。使用此选项,Wget 发出 每次建立新连接时都会进行新的 DNS 查找(更准确地说,是对 OR 的新调用)。请注意 此选项不会影响可能是 由解析库或外部缓存层执行, 比如NSCD。
gethostbynamegetaddrinfo如果您不完全了解此选项的作用,您可能会 不需要它。
- --restrict-file-names=modes
-
默认情况下,Wget 会转义操作系统文件名中无效或不安全的字符,以及不安全的控制字符。
通常不可打印。此选项对于更改这些默认值很有用,可能是因为您正在下载到非本机分区,或者因为您想要
禁用控制字符的转义,或者您想进一步将字符限制为仅在 ASCII 值范围内的字符。这些模式是一组以逗号分隔的文本值。可接受的值为 unix、windows、nocontrol、ascii、小写和大写。值 unix 和
窗口是互斥的(一个将覆盖另一个),小写和大写也是如此。最后那些是特殊情况,因为它们不会改变
将被转义的字符,而是强制将本地文件路径转换为小写或大写。当指定“unix”时,Wget 转义字符 / 和 0--31 和 128--159 范围内的控制字符。这是类 Unix 上的默认设置
操作系统。当给出 "windows" 时,Wget 转义字符 \、|、/、:、?、"、*、<、>,以及 0--31 和 128--159 范围内的控制字符。除了
为此,Windows 模式下的 Wget 使用 + 而不是 : 来分隔本地文件名中的主机和端口,并使用 @ 而不是 ?将查询部分分开
其余的文件名。因此,在 Unix 模式下将保存为 www.x.org:4300/search.pl?input=blah 的 URL 将保存为
Windows 模式下的 www.x.org+4300/search.pl@input=blah。此模式是 Windows 上的默认模式。如果您指定 nocontrol,那么控制字符的转义也会被关闭。当您下载 URL 时,此选项可能有意义
名称包含 UTF-8 字符,在可以用 UTF-8 保存和显示文件名的系统上(UTF-8 字节序列中使用的一些可能的字节值落在
Wget 指定为“控件”的值范围)。ascii 模式用于指定值超出 ASCII 字符范围(即大于 127)的任何字节都应进行转义。这个
在保存编码与本地使用的编码不匹配的文件名时很有用 - -4
- --inet4-only
- -6
- --inet6-only
-
强制连接到 IPv4 或 IPv6 地址。带“” 或 '',Wget 将仅连接到 IPv4 主机,忽略 AAAA DNS 中的记录,并拒绝连接到 中指定的 IPv6 地址 网址。相反,对于“”或“”,Wget 将 仅连接到 IPv6 主机,忽略 A 记录和 IPv4 地址。--inet4-only-4--inet6-only-6
通常不应使用这两种选择。默认情况下,IPv6 感知 Wget 将使用主机的 DNS 记录指定的地址族。 如果DNS同时使用IPv4和IPv6地址进行响应,Wget将尝试 它们按顺序排列,直到找到可以连接的。(另请参阅下面描述的选项。
--prefer-family这些选项可用于故意强制使用 IPv4 或 双系列系统上的 IPv6 地址系列,通常用于帮助调试 或处理损坏的网络配置。只有其中之一 “”和“”可以在 同时。这两个选项在没有IPv6的Wget编译中都不可用 支持。--inet6-only--inet4-only
- --prefer-family=none/IPv4/IPv6
-
当可以选择多个地址时,请连接到这些地址 首先使用指定的地址族。返回的地址顺序 默认情况下,DNS 无需更改即可使用。
这样可以避免访问主机时的虚假错误和连接尝试 解析为 IPv6 网络中的 IPv4 和 IPv4 地址。为 例如,“”解析为 '' 和 ''.当首选家庭为 时,将 首先使用 IPv4 地址;当首选家庭为 , 首先使用 IPv6 地址;如果指定的值为 , DNS 返回的地址顺序将保持不变。www.kame.net2001:200:0:8002:203:47ff:fea5:3085203.178.141.194
IPv4IPv6none与“”和“”不同,此选项不会禁止访问 任何地址族,它只会更改 访问地址。另请注意,由 此选项是稳定的 - 它不会影响地址的顺序 同一个家庭。即所有 IPv4 地址的相对顺序 并且所有 IPv6 地址在所有情况下都保持不变。-4-6
- --retry-connrefused
-
将“连接被拒绝”视为暂时性错误,然后重试。 通常,当 Wget 无法连接到 URL 时,它会放弃 站点,因为连接失败被视为服务器 根本不运行,重试也无济于事。此选项是 用于镜像不可靠的站点,其服务器往往会消失 时间短。
- --user=user
- --password=password
-
指定用于 FTP 和 HTTP 文件检索的用户名和密码。可以覆盖这些参数 对 FTP 连接使用“”和“”选项以及“”和“” HTTP 连接的选项。userpassword--ftp-user--ftp-password--http-user--http-password
- --ask-password
-
提示为每个建立的连接输入密码。无法指定 当使用“”时,因为它们是互斥的。--password
- --use-askpass=command
-
使用指定的命令提示输入用户和密码。如果没有命令 指定,然后使用环境变量 WGET_ASKPASS 中的命令。 如果未设置WGET_ASKPASS则环境变量中的命令 使用SSH_ASKPASS。
您可以在 中设置 use-askpass 的默认命令。那 可以从命令行覆盖设置。.wgetrc
- --no-iri
-
关闭国际化 URI (IRI) 支持。使用“”可以 打开它。默认情况下,IRI 支持处于激活状态。--iri
您可以使用中的命令设置 IRI 支持的默认状态。该设置可能会从 命令行。
iri.wgetrc - --local-encoding=encoding
-
强制 Wget 用作默认系统编码。这会影响 Wget 如何将指定为参数的 URL 从区域设置转换为 UTF-8 IRI 支持。encoding
Wget 使用函数,然后使用环境变量来获取语言环境。如果失败,则使用 ASCII。
nl_langinfo()CHARSET可以使用中的命令设置默认本地编码。该设置可能会从 命令行。
local_encoding.wgetrc - --remote-encoding=encoding
-
强制 Wget 用作默认的远程服务器编码。 这会影响 Wget 如何从远程编码转换文件中找到的 URI 在递归提取期间转换为 UTF-8。此选项仅适用于 IRI 支持,用于解释非 ASCII 字符。encoding
对于 HTTP,可以在 HTTP 标头和 HTML 元标记中找到远程编码。
Content-TypeContent-Type http-equiv您可以使用 中的命令设置默认编码。该设置可能会从 命令行。
remoteencoding.wgetrc - --unlink
-
强制 Wget 取消链接文件,而不是破坏现有文件。这 选项对于下载到带有硬链接的目录很有用。
2.6 目录选项
- -nd
- --no-directories
-
递归检索时不要创建目录层次结构。 启用此选项后,所有文件都将保存到当前 目录,不进行破坏(如果一个名称多次出现,则 文件名将获得扩展名“”)。.n
- -x
- --force-directories
-
与 '' 相反 — 创建目录层次结构,即使 否则就不会创建一个。例如,'' 会将下载的文件保存到 .-ndwget -x http://fly.srk.fer.hr/robots.txtfly.srk.fer.hr/robots.txt
- -nH
- --no-host-directories
-
禁用以主机为前缀的目录的生成。默认情况下,调用 带有 '' 的 Wget 将创建一个结构 以 开头的目录。此选项禁用 这样的行为。-r http://fly.srk.fer.hr/fly.srk.fer.hr/
- --protocol-directories
-
使用协议名称作为本地文件名的目录组件。为 例如,使用此选项,“”将保存到 “,而不仅仅是””。wget -r http://hosthttp/host/...host/...
- --cut-dirs=number
-
忽略目录组件。这对于获得 对递归检索将在其中的目录进行细粒度控制 得救。number
以目录为例 ''.如果您使用 '',它将保存在本地。虽然“”选项可以 卸下零件,您仍然卡在.这就是“”派上用场的地方;它 使 Wget 不“看到”远程目录组件。这里 是“”选项如何工作的几个示例。ftp://ftp.xemacs.org/pub/xemacs/-rftp.xemacs.org/pub/xemacs/-nHftp.xemacs.org/pub/xemacs--cut-dirsnumber--cut-dirs
No options -> ftp.xemacs.org/pub/xemacs/ -nH -> pub/xemacs/ -nH --cut-dirs=1 -> xemacs/ -nH --cut-dirs=2 -> . --cut-dirs=1 -> ftp.xemacs.org/xemacs/ ...
如果您只想摆脱目录结构,则此选项是 类似于“”和“”的组合。但是,与 '', '' 不会丢失子目录 — 对于 实例,带有 '',子目录将 正如人们所期望的那样被放置在 上。-nd-P-nd--cut-dirs-nH --cut-dirs=1beta/xemacs/beta
- -P prefix
- --directory-prefix=prefix
-
将目录前缀设置为 。目录前缀为 所有其他文件和子目录将保存到的目录, 即检索树的顶部。默认值为 '' ( 当前目录)。prefix.
下一页: HTTPS (SSL/TLS) 选项, 上一篇: 目录选项, 上一篇: 调用 [内容][索引]
2.7 HTTP 选项
- --default-page=name
-
当文件名未知时用作默认文件名(即 以斜杠结尾的 URL),而不是 .nameindex.html
- -E
- --adjust-extension
-
如果类型为“”或“”的文件是 已下载且 URL 不以正则表达式结尾 “,此选项将导致后缀”” 追加到本地文件名。这很有用,例如,当 您正在镜像使用“”页面的远程站点,但您需要 在您的库存 Apache 服务器上可查看的镜像页面。另一个 当您下载CGI生成的材料时,可以很好地使用它。一个网址 像 '' 将另存为 .application/xhtml+xmltext/html\.[Hh][Tt][Mm][Ll]?.html.asphttp://site.com/article.cgi?25article.cgi?25.html
请注意,以这种方式更改的文件名每次都会重新下载 您重新镜像站点,因为 Wget 无法分辨本地文件对应于远程 URL ''(因为 它还不知道 URL 生成类型的输出 “”或“”。X.htmlXtext/htmlapplication/xhtml+xml
从 1.12 版开始,Wget 还将确保任何下载的文件 在后缀“”中键入“”结尾,选项是 从 '' 重命名,以更好地反映其新的 行为。旧的选项名称仍然可以接受,但现在应该是 被视为已弃用。text/css.css--html-extension
从 1.19.2 版本开始,Wget 还将确保任何下载的文件 a 的 '', '', '' 或 “” 以后缀 '', '', '' 结尾 和“”分别。
Content-Encodingbrcompressdeflategzip.br.Z.zlib.gz在将来的某个时候,此选项很可能会扩展到 包括其他类型的内容的后缀,包括内容类型 未被 Wget 解析。
- --http-user=user
- --http-password=password
-
指定 HTTP 服务器上的用户名和密码。根据挑战的类型,Wget将 使用(不安全的)对它们进行编码, 或 Windows 身份验证方案。userpassword
basicdigestNTLM指定用户名和密码的另一种方法是在 URL 本身中 (请参阅 URL 格式)。这两种方法都会向以下任何人显示您的密码: 费心跑.为防止看到密码, 使用 '' 或将它们存储在 或 中 , 并确保使用 保护这些文件免受其他用户的侵害。如果 密码非常重要,不要将它们留在那些文件中 要么 - 编辑文件并在 Wget 开始下载后将其删除。
ps--use-askpass.wgetrc.netrcchmod - --no-http-keep-alive
-
关闭 HTTP 下载的“保持活动状态”功能。通常,Wget 要求服务器保持连接打开,以便在您下载时 来自同一服务器的多个文档,它们被传输过来 相同的 TCP 连接。这样可以节省时间,同时减少 服务器上的负载。
当由于某种原因持久(保持活动状态)时,此选项很有用 连接对您不起作用,例如由于服务器错误或由于 服务器端脚本无法处理连接。
- --no-cache
-
禁用服务器端缓存。在这种情况下,Wget 将发送远程 服务器适当的指令(“”和 '') 从远程服务获取文件, 而不是返回缓存的版本。这特别有用 用于检索和刷新代理服务器上的过期文档。Cache-Control: no-cachePragma: no-cache
默认情况下允许缓存。
- --no-cookies
-
禁用 Cookie 的使用。Cookie 是一种维护机制 服务器端状态。服务器使用标头向客户端发送 cookie,客户端使用相同的 cookie 进行响应 根据进一步要求。由于 cookie 允许服务器所有者保留 跟踪访问者和网站交换此信息,一些 认为它们侵犯了隐私。默认设置是使用饼干; 但是,默认情况下不会打开存储 Cookie。
Set-Cookie - --load-cookies file
-
从第一次 HTTP 检索之前加载 Cookie。 是一个文本文件,格式最初由网景的文件使用。filefilecookies.txt
通常在镜像需要的站点时使用此选项 您登录以访问其部分或全部内容。登录名 进程通常由发布HTTP cookie的Web服务器工作 收到并验证您的凭据后。然后饼干是 访问网站的该部分时被浏览器重新发送,因此 证明您的身份。
镜像这样的网站需要 Wget 发送相同的 cookie 浏览器在与网站通信时发送。这是通过 ''—只需将 Wget 指向文件的位置,它就会向您的浏览器发送相同的 cookie 会在同样的情况下发送。不同的浏览器保持文本 不同位置的 Cookie 文件:--load-cookiescookies.txt
- 网景4.x.
-
饼干位于 .~/.netscape/cookies.txt
- Mozilla 和 Netscape 6.x。
-
Mozilla 的 cookie 文件也被命名为 ,位于 在配置文件目录中的某个位置。 完整路径通常最终看起来有点像 .cookies.txt~/.mozilla~/.mozilla/default/some-weird-string/cookies.txt
- IE浏览器。
-
您可以使用“文件”菜单生成 Wget 可以使用的 cookie 文件, 导入和导出,导出饼干。这已经在互联网上进行了测试 探索者 5;它不能保证适用于早期版本。
- 其他浏览器。
-
如果您使用其他浏览器创建 Cookie, '' 仅在您可以找到或生成 Wget 期望的 Netscape 格式的 cookie 文件。--load-cookies
如果不能使用“”,可能仍存在 另类。如果您的浏览器支持“cookie管理器”,您可以使用 它用于查看访问您正在镜像的网站时使用的 Cookie。 记下 cookie 的名称和值,并手动指示 Wget 要发送这些 Cookie,请绕过“官方”Cookie 支持:--load-cookies
wget --no-cookies --header "Cookie: name=value"
- --save-cookies file
-
在退出之前保存 Cookie。这不会保存饼干 已过期或没有到期时间(所谓的“会话” 饼干“),但也见””。file--keep-session-cookies
- --keep-session-cookies
-
指定时,会导致 '' 也保存会话 饼干。会话 Cookie 通常不会保存,因为它们是 旨在保存在内存中,并在退出浏览器时被遗忘。 在需要您登录或访问的网站上保存它们很有用 主页,然后才能访问某些页面。使用此选项, 多个 Wget 运行被视为单个浏览器会话,只要 该网站受到关注。--save-cookies
由于 Cookie 文件格式通常不携带会话 Cookie, Wget 使用到期时间戳 0 标记它们。韦格特的 '' 将这些识别为会话 Cookie,但它可能会 混淆其他浏览器。另请注意,如此加载的 cookie 将是 被视为其他会话 Cookie,这意味着如果您愿意 '' 要再次保存它们,您必须使用 ''再次。--load-cookies--save-cookies--keep-session-cookies
- --ignore-length
-
不幸的是,一些HTTP服务器(CGI程序,要更多 精确)发送虚假的标头,这使得 Wget 疯狂,因为它认为并非所有文档都被检索到。你可以发现 如果 Wget 一次又一次地重试获取相同的文档,则会出现这种综合症, 每次声称(否则正常)连接已关闭 完全相同的字节。
Content-Length使用此选项,Wget 将忽略标头 - 如 如果它从未存在过。
Content-Length - --header=header-line
-
与每个 HTTP 请求中的其余标头一起发送。提供的标头按原样发送,这意味着它 必须包含以冒号分隔的名称和值,并且不得包含 换行符。header-line
您可以通过指定来定义多个附加标头 ''不止一次。--header
wget --header='Accept-Charset: iso-8859-2' \ --header='Accept-Language: hr' \ http://fly.srk.fer.hr/
将空字符串指定为标头值将清除所有 以前的用户定义标头。
从 Wget 1.10 开始,此选项可用于覆盖标头,否则将覆盖标头 自动生成。此示例指示 Wget 连接到 本地主机,但在标头中指定 '':foo.bar
Hostwget --header="Host: foo.bar" http://localhost/
在 1.10 之前的 Wget 版本中,这种使用“”会导致 发送重复的标头。--header
- --compression=type
-
选择要使用的压缩类型。法律价值是 “”、“”和“”。autogzipnone
如果指定了“”或“,Wget 会要求服务器 使用 gzip 压缩格式压缩文件。如果服务器 压缩文件并响应适当设置的标头字段,文件将被解压缩 自然而然。autogzip
Content-Encoding如果指定了 '',wget 不会要求服务器压缩 该文件,并且不会解压缩任何服务器响应。这是默认值。none
压缩支持目前处于实验阶段。万一打开, 请将任何错误报告给 。
bug-wget@gnu.org - --max-redirect=number
-
指定资源要遵循的最大重定向数。 默认值为 20,这通常远远超过必要的值。然而,在 那些你想允许更多(或更少)的场合,这是 选项使用。
- --proxy-user=user
- --proxy-password=password
-
指定用户名和密码 代理服务器上的身份验证。Wget 将使用身份验证方案对它们进行编码。userpassword
basic与“”类似的安全注意事项 这里也适用。--http-password
- --referer=url
-
在 HTTP 请求中包含“Referer:”标头。适用于 使用服务器端处理检索假定它们是 总是被交互式网络浏览器检索并且只出来 当引用设置为指向它们的页面之一时正确。url
- --save-headers
-
将 HTTP 服务器发送的标头保存到文件中,在 实际内容,以空行作为分隔符。
- -U agent-string
- --user-agent=agent-string
-
标识 HTTP 服务器。agent-string
HTTP 协议允许客户端使用标头字段标识自己。这样可以区分WWW软件,通常用于统计目的或用于跟踪 违反协议。Wget 通常标识为 '',是当前版本 Wget的数量。
User-AgentWget/versionversion但是,众所周知,一些网站会实施定制政策 根据提供的信息输出。 虽然这在理论上不是一个坏主意,但它已经被滥用了 拒绝向(历史上)以外的客户端发送信息的服务器 Netscape,或者更常见的是Microsoft Internet Explorer。这 选项允许您更改 Wget 发布的行。 不鼓励使用此选项,除非您真的知道自己是什么 行为。
User-AgentUser-Agent使用 '' 指定空用户代理指示 Wget 不要在 HTTP 请求中发送标头。--user-agent=""
User-Agent - --post-data=string
- --post-file=file
-
使用 POST 作为所有 HTTP 请求的方法,并发送指定的 请求正文中的数据。'' 发送方式 数据,而 '' 发送 的内容。 除此之外,它们的工作方式完全相同。特别 他们都期待形式的内容, 对特殊字符使用百分比编码;唯一的区别是 一个期望其内容作为命令行参数,另一个期望 接受文件中的内容。特别是,“”不用于将文件作为表单附件传输:那些必须 仅显示为数据(使用适当的百分比编码) 像其他一切一样。Wget 目前不支持传输 POST 数据;只。只有其中之一 应指定“”和“”。--post-datastring--post-filefile
key1=value1&key2=value2--post-filekey=valuemultipart/form-dataapplication/x-www-form-urlencoded--post-data--post-file请注意,wget 不要求内容是形式,也不测试它。威格特将 只需传输提供给它的任何数据。然而,大多数服务器期望 处理 HTML 表单时,POST 数据应采用上述格式。
key1=value1&key2=value2使用 '' 选项发送 POST 请求时,Wget 会处理 该文件作为二进制文件,并将发送 POST 请求中的每个字符 不去除尾随换行符或表单进纸字符。任何其他控件 文本中的字符也将在 POST 请求中按原样发送。--post-file
请注意,Wget 需要知道 POST 数据的大小 进展。因此,参数必须是常规的 文件;指定 FIFO 或类似的东西是行不通的。 目前还不清楚如何解决固有的这种限制 HTTP/1.0.尽管HTTP / 1.1引入了分块传输 不需要提前知道请求长度,客户端不能 使用分块,除非它知道它正在与HTTP / 1.1服务器通信。而它 在收到响应之前无法知道,这反过来又需要 请求已完成 – 鸡和蛋的问题。
--post-file/dev/stdin注意:从版本 1.15 开始,如果在 POST 请求后重定向 Wget 是 完成,其行为将取决于 服务器。如果 301 永久搬家,302 暂时搬家或 307 临时重定向,Wget 将根据RFC2616继续 以发送开机自检请求。 如果服务器希望客户端在以下情况下更改请求方法 重定向,它应该发送 303 请参阅其他响应代码。
此示例说明如何使用 POST 登录到服务器,然后继续 下载所需的页面,大概只有授权才能访问 用户:
# Log in to the server. This can be done only once. wget --save-cookies cookies.txt \ --post-data 'user=foo&password=bar' \ http://example.com/auth.php # Now grab the page or pages we care about. wget --load-cookies cookies.txt \ -p http://example.com/interesting/article.php
如果服务器使用会话 cookie 来跟踪用户身份验证, 以上将不起作用,因为“”不会保存 他们(浏览器也不会)和文件将 为空。在这种情况下,请使用“”与 “”以强制保存会话 Cookie。--save-cookiescookies.txt--keep-session-cookies--save-cookies
- --method=HTTP-Method
-
出于 RESTful 脚本的目的,Wget 允许发送其他 HTTP 方法 无需使用 '' 显式设置它们。 Wget 将使用在 '' 之后传递给它的任何字符串作为 HTTP 服务器的方法。--header=Header-Line--method
- --body-data=Data-String
- --body-file=Data-File
-
当需要将其他数据与 使用 '' 指定的方法。'' 发送方式 数据,而 '' 发送 的内容。除此之外, 它们以完全相同的方式工作。--method--body-datastring--body-filefile
目前,“”不用于传输整个文件。 Wget 目前不支持传输数据; 只。将来,这可能会改变 这样 wget 将 '' 作为完整文件发送,而不是发送其 内容到服务器。请注意,Wget 需要知道 预先的 BODY 数据,因此对 '' 的参数应该是一个 常规文件。有关更详细的说明,请参阅“”。 只应指定“”和“”中的一个。--body-file
multipart/form-dataapplication/x-www-form-urlencoded--body-file--body-file--post-file--body-data--body-file如果 Wget 在请求完成后被重定向,Wget 将 暂停当前方法并发送 GET 请求,直到重定向 已完成。这适用于所有重定向响应代码,除了 307 临时重定向,用于显式指定 请求方法不应更改。另一个例外是当 该方法设置为 ,在这种情况下,重定向规则 在“”下指定。
POST--post-data - --content-disposition
-
如果设置为 on,则会启用对标头的实验性(非完全功能)支持。这目前可能导致 为请求到服务器的额外往返,并且是已知的 遭受一些错误,这就是为什么默认情况下当前未启用它的原因。
Content-DispositionHEAD此选项对于某些文件下载 CGI 程序很有用,这些程序使用标头来描述 下载的文件应该是。
Content-Disposition当与“”和“”结合使用时, “”文件使用文件名字段(如果可用)命名。--metalink-over-http--trust-server-namesContent-Type: application/metalink4+xml
Content-Disposition - --content-on-error
-
如果设置为 on,则当服务器响应时,wget 将不会跳过内容 带有指示错误的 HTTP 状态代码。
- --trust-server-names
-
如果设置了此选项,则在重定向时,本地文件名将基于 在重定向 URL 上。默认情况下,本地文件名基于 原始网址。执行递归检索时,这会很有帮助 因为在许多网站中,重定向的 URL 对应于底层 文件结构,而链接 URL 则没有。
- --auth-no-challenge
-
如果给出此选项,Wget 将发送基本 HTTP 身份验证 所有请求的信息(纯文本用户名和密码),只需 像 Wget 1.10.2 和更早版本默认这样做。
不建议使用此选项,仅用于支持 一些晦涩难懂的服务器,从不发送HTTP身份验证 挑战,但接受未经请求的身份验证信息,例如,除了 基于表单的身份验证。
- --retry-on-host-error
-
考虑主机错误,例如“名称解析暂时失败”, 作为非致命的暂时性错误。
- --retry-on-http-error=code[,code,...]
-
将给定的 HTTP 响应代码视为非致命的暂时性错误。 提供以逗号分隔的 3 位 HTTP 响应代码列表,作为 论点。有助于解决重试的特殊情况 是必需的,但服务器通常不会响应错误代码 由Wget重试。此类错误可能是 503(服务不可用)和 429(请求过多)。执行此选项启用的重试 受正常重试计时和重试计数限制的约束 哇哇。
使用此选项仅用于支持特殊用例,并且 通常不建议使用,因为它即使在以下情况下也可以强制重试 服务器实际上正在尝试减少其负载。请明智地使用 只有当你知道自己在做什么时。
2.8 HTTPS (SSL/TLS) OPTIONS
为了支持加密的HTTP(HTTPS)下载,必须编译Wget 使用外部 SSL 库。当前的默认值是 GnuTLS。 此外,Wget还支持HSTS(HTTP严格传输安全)。 如果 Wget 是在没有 SSL 支持的情况下编译的,则这些选项都不可用。
- --secure-protocol=protocol
-
选择要使用的安全协议。法律值为“”, '', '', '', '', '', “”和“”。如果使用 '',则 SSL 库为 给予自动选择适当协议的自由,即 通过发送 TLSv1 问候语实现。这是默认值。autoSSLv2SSLv3TLSv1TLSv1_1TLSv1_2TLSv1_3PFSauto
指定 “”、“”、“”、“” “”或“”强制使用相应的 协议。这在与旧的和有问题的SSL服务器交谈时很有用 使底层 SSL 库难以选择的实现 正确的协议版本。幸运的是,这样的服务器非常罕见。SSLv2SSLv3TLSv1TLSv1_1TLSv1_2TLSv1_3
指定 '' 强制使用所谓的完美转发 安全密码套件。简而言之,PFS 通过创建一次性 每个 SSL 连接的密钥。它对客户端和服务器的 CPU 影响更大一些。 我们使用已知的安全密码(例如没有MD4)和TLS协议。此模式 还显式排除非 PFS 密钥交换方法,例如 RSA。PFS
- --https-only
-
在递归模式下,仅遵循 HTTPS 链接。
- --ciphers
-
设置密码列表字符串。通常,此字符串设置 密码套件和用户希望使用的其他 SSL/TLS 选项,在 设置首选项顺序(GnuTLS 称之为“优先级字符串”)。此字符串 将被逐字输入到SSL / TLS引擎(OpenSSL或GnuTLS),因此 它的格式和语法取决于此。Wget 不会处理或操纵它 以任何方式。有关更多信息,请参阅 OpenSSL 或 GnuTLS 文档。
- --no-check-certificate
-
不要根据可用证书检查服务器证书 当局。也不要求 URL 主机名与通用主机名匹配 证书显示的名称。
从 Wget 1.10 开始,默认设置是验证服务器的证书 针对公认的证书颁发机构,破坏 SSL 握手并在验证失败时中止下载。 虽然这提供了更安全的下载,但它确实会中断 与一些与以前的 Wget 一起工作的站点的互操作性 版本,尤其是使用自签名、过期或其他版本的版本 证书无效。此选项强制将“不安全”模式设置为 将证书验证错误转换为警告的操作 并允许您继续。
如果您遇到“证书验证”错误或说 “公用名与请求的主机名不匹配”,您可以使用 此选项可绕过验证并继续下载。仅当您确信 网站的真实性,或者你是否真的不在乎有效性 其证书。不检查 传输机密或重要数据时的证书。 对于自签名/内部证书,应下载证书 并对此进行验证,而不是强制使用这种不安全模式。 如果您真的确定不需要任何证书验证,那么您 可以指定 –check-certificate=quiet 告诉 wget 不要打印任何 有关无效证书的警告,尽管在大多数情况下这是 做错事。
- --certificate=file
-
使用存储在 中的客户端证书。这是必需的 配置为需要客户端证书的服务器 连接到它们。通常不需要证书,这 开关是可选的。file
- --certificate-type=type
-
指定客户端证书的类型。法律价值是 “”(默认假定)和“”,也称为 ''.PEMDERASN1
- --private-key=file
-
从中读取私钥。这允许您提供 与证书分开的文件中的私钥。file
- --private-key-type=type
-
指定私钥的类型。接受的值为“” (默认值)和“”。PEMDER
- --ca-certificate=file
-
用作证书颁发机构捆绑包的文件 (“CA”) 以验证对等方。证书必须采用 PEM 格式。file
如果没有此选项,Wget 将在 系统指定的位置,在 OpenSSL 安装时选择。
- --ca-directory=directory
-
指定包含 PEM 格式的 CA 证书的目录。每 文件包含一个 CA 证书,文件名基于哈希 从证书派生的值。这是通过处理 提供实用程序的证书目录 OpenSSL。使用“”比 ''当安装了许多证书时,因为 它允许 Wget 按需获取证书。
c_rehash--ca-directory--ca-certificate如果没有此选项,Wget 将在 系统指定的位置,在 OpenSSL 安装时选择。
- --crl-file=file
-
在 中指定 CRL 文件。这是证书所必需的 已被 CA 撤销。file
- --pinnedpubkey=file/hashes
-
告诉 wget 使用指定的公钥文件(或哈希)来验证对等方。 这可以是包含 PEM 或 DER 中的单个公钥的文件的路径 格式,或前面带有“SHA64//”的任意数量的 base256 编码的 SHA256 哈希 并用“;”分隔
协商 TLS 或 SSL 连接时,服务器会发送证书 表明其身份。从此证书中提取公钥,如果 它与提供给此选项的公钥不完全匹配,WGET 将 在发送或接收任何数据之前中止连接。
- --random-file=file
-
[仅限OpenSSL和LibreSSL] 用作随机数据源,用于播种 没有 的系统上的伪随机数生成器。file/dev/urandom
在这样的系统上,SSL库需要一个外部随机源 进行初始化。随机性可能由EGD提供(参见 '')或从指定的外部源读取 用户。如果未指定此选项,Wget 将查找随机数据 在 或者,如果未设置,则在 中。--egd-file
$RANDFILE$HOME/.rnd如果您收到“无法播种OpenSSL PRNG;禁用 SSL。 错误,您应该使用某些方法提供随机数据 上述。
- --egd-file=file
-
[仅限开放SSL] 用作 EGD 插座。EGD 代表 熵 收集守护进程,一个从中收集数据的用户空间程序 各种不可预测的系统源,并使其可用于其他 可能需要它的程序。加密软件,如 SSL 库,需要非重复随机性的来源来播种随机 用于生成加密强密钥的数字生成器。file
OpenSSL允许用户使用环境变量指定自己的熵源。如果未设置此变量,或者 如果指定的文件没有产生足够的随机性,OpenSSL 将 从使用此选项指定的 EGD 套接字读取随机数据。
RAND_FILE如果未指定此选项(并且等效的启动命令为 不使用),从不联系 EGD。现代 Unix 不需要 EGD 支持 . 的系统/dev/urandom
- --no-hsts
-
Wget 默认支持 HSTS(HTTP Strict Transport Security,RFC 6797)。 使用 '' 使 Wget 充当不符合 HSTS 的 UA。作为一个 因此,Wget 将忽略所有标头,并且不会强制执行任何现有的 HSTS 策略。--no-hsts
Strict-Transport-Security - --hsts-file=file
-
默认情况下,Wget 将其 HSTS 数据库存储在 . 您可以使用“”来覆盖此设置。Wget 将使用 作为 HSTS 数据库提供的文件。此类文件必须符合 Wget 使用的 HSTS 数据库格式正确。如果 Wget 无法解析提供的 文件,则未指定行为。~/.wget-hsts--hsts-file
Wget的HSTS数据库是一个纯文本文件。每行包含一个 HSTS 条目 (即,发出标题的网站 因此指定了要应用的具体HSTS策略)。以 开头的行 破折号 () 被 Wget 忽略。请注意,尽管有这个方便 人类可读性手动破解HSTS数据库通常不是一个好主意。
Strict-Transport-Security#HSTS 条目行由一个或多个空格分隔的多个字段组成:
<hostname> SP [<port>] SP <include subdomains> SP <created> SP <max-age>和字段指示主机名和端口 给定的 HSTS 策略适用。该字段可能为零,它将在 大多数情况下。这意味着不会考虑端口号 在决定是否应将此类HSTS策略应用于给定请求时(仅 将评估主机名)。当与零不同时,两者 将评估目标主机名和端口,并且仅应用 HSTS 策略 如果两者都匹配。此功能仅用于测试/开发目的。 Wget 测试套件(在)中创建具有显式端口的HSTS数据库 目的是确保Wget的正确行为。将 HSTS 策略应用于端口 RFC 6797 不鼓励使用默认的(请参阅附录 B“差异” 在HSTS策略和同源策略之间“)。因此,不应使用此功能 在生产环境中,通常为零。最后三个字段 做他们应该做的事。该字段可以是 或,它指示目标域的子域是否应为 也是给定HSTS策略的一部分。和字段 保存创建此类条目时的时间戳值(Wget 首次看到)和 HSTS 定义的值“最大年龄”,说明 HSTS 策略应保持活动状态多长时间, 以自 中存储的时间戳以来经过的秒为单位进行测量。一次 已通过,HSTS策略将不再有效,最终将被删除 从数据库中。hostnameportportporttestenv/portinclude_subdomains
10createdmax-agecreated如果您通过“”提供自己的HSTS数据库,请注意Wget 如果HSTS策略之间发生任何更改,则可以修改提供的文件 由远程服务器和文件中的服务器请求。当 Wget 退出时, 它通过使用新条目重写数据库文件来有效地更新 HSTS 数据库。--hsts-file
如果提供的文件不存在,Wget 将创建一个。此文件将包含新的 HSTS 条目。如果未生成 HSTS 条目(无标头 由任何服务器发送),则不会创建任何文件,甚至不会创建一个空文件。这 行为也适用于默认数据库文件 ():它不会 创建,直到某些服务器强制执行 HSTS 策略。
Strict-Transport-Security~/.wget-hsts注意不要覆盖其他 Wget 进程在 同时在HSTS数据库上。在转储更新的 HSTS 条目之前 在文件上,Wget 将重新读取它并合并更改。
不鼓励使用自定义HSTS数据库和/或修改现有数据库。 有关这种做法产生的潜在安全威胁的更多信息, 请参阅 RFC 14 的第 6797 节“安全注意事项”,特别是第 14.9 节 “HSTS 策略存储的创造性操作”。
- --warc-file=file
-
用作目标 WARC 文件。file
- --warc-header=string
-
用作 warcinfo 记录。string
- --warc-max-size=size
-
将 WARC 文件的最大大小设置为 。size
- --warc-cdx
-
写入 CDX 索引文件。
- --warc-dedup=file
-
不要存储此CDX文件中列出的记录。
- --no-warc-compression
-
不要使用 GZIP 压缩 WARC 文件。
- --no-warc-digests
-
不要计算 SHA1 摘要。
- --no-warc-keep-log
-
不要将日志文件存储在 WARC 记录中。
- --warc-tempdir=dir
-
指定由 WARC 编写器创建的临时文件的位置。
下一篇: 递归检索选项, 上一篇: HTTPS (SSL/TLS) 选项, 上一篇: 调用 [内容][索引]
2.9 FTP 选项
- --ftp-user=user
- --ftp-password=password
-
指定 FTP 服务器上的用户名和密码。如果没有这个或相应的启动选项, 密码默认为“”,通常用于匿名 FTP.userpassword-wget@
指定用户名和密码的另一种方法是在 URL 本身中 (请参阅 URL 格式)。这两种方法都会向以下任何人显示您的密码: 费心跑.为防止看到密码, 将它们存储在 或 中,并确保保护 其他用户使用 .如果密码是 真的很重要,也不要让它们躺在这些文件中 - 编辑 文件,并在 Wget 开始下载后将其删除。
ps.wgetrc.netrcchmod - --no-remove-listing
-
不要删除 FTP 检索生成的临时文件。通常,这些文件包含原始目录列表 从 FTP 服务器接收。不删除它们可能很有用 调试目的,或者当您希望能够轻松检查 远程服务器目录的内容(例如,验证镜像 您正在运行已完成)。.listing
请注意,即使 Wget 写入此文件的已知文件名, 这不是用户进行符号链接或某物的场景中的安全漏洞,并且 要求在他或她的目录中运行 Wget。根据 使用的选项,要么 Wget 拒绝写入 , 使通配/递归/时间戳操作失败,或者 符号链接将被删除并替换为实际文件,或者列表将写入文件。.listing/etc/passwd
root.listing.listing.listing.number即使这种情况不是问题,也应该 永远不要在不受信任的用户目录中运行 Wget。用户可以执行 像链接到并要求使用“”或“运行Wget这样简单的事情,因此文件可以 将被覆盖。
rootindex.html/etc/passwdroot-N-r - --no-glob
-
关闭 FTP 通配。通配是指使用贝壳状 特殊字符(通配符),如“”、“”、“” 和 '' 从同一目录中检索多个文件 一次,比如:*?[]
wget ftp://gnjilux.srk.fer.hr/*.msg
默认情况下,如果 URL 包含 通奸角色。此选项可用于打开或关闭通配 永久。
您可能需要引用 URL 以防止它被扩展 你的外壳。通配使 Wget 查找目录列表,即 特定于系统。这就是为什么它目前仅适用于Unix FTP服务器(以及模拟Unix输出的服务器)。
ls - --no-passive-ftp
-
禁用被动 FTP 传输模式。被动 FTP 要求客户端连接到服务器以建立数据 连接而不是相反。
如果机器直接连接到互联网,则被动和 主动 FTP 应该同样正常工作。在大多数防火墙和 NAT 后面 配置被动FTP有更好的工作机会。然而 在一些罕见的防火墙配置中,活动 FTP 实际上在以下情况下工作 被动 FTP 不会。如果您怀疑是这种情况,请使用此 选项,或在初始化文件中设置。
passive_ftp=off - --preserve-permissions
-
保留远程文件权限,而不是 umask 设置的权限。
- --retr-symlinks
-
默认情况下,以递归方式检索 FTP 目录和符号链接时 遇到,遍历符号链接,指向的文件 检索。目前,Wget 不会遍历指向目录的符号链接 以递归方式下载它们,尽管将来可能会添加此功能。
指定 '' 时,链接的文件不是 下载。而是在本地创建匹配的符号链接 文件系统。除非此递归,否则不会检索指向的文件 检索会单独遇到它并无论如何下载它。这 选项会带来安全风险,恶意 FTP 服务器可能导致 Wget 通过特制 写入预期目录之外的文件。列表文件。--retr-symlinks=no
请注意,当检索文件(不是目录)时,因为它是 在命令行上指定,而不是因为它被递归为 , 此选项不起作用。符号链接始终在此遍历 箱。
2.10 FTPS 选项
- --ftps-implicit
-
此选项告诉 Wget 隐式使用 FTPS。隐式 FTPS 包括初始化 SSL/TLS 从控制连接的一开始。此选项不发送 一个命令:它假设服务器使用 FTPS 并直接启动 SSL/TLS 连接。如果尝试成功,会话将继续,就像 常规 FTPS(和发送等)。 隐式 FTPS 不再是 FTPS 实现的要求,因此 许多服务器可能不支持它。如果传递了 '' 并且没有显式 指定的端口号,将使用隐式 FTPS 的默认端口 990,而不是 与 FTP 相同的“正常”(显式)FTPS 的默认端口, 21米
AUTH TLSPBSZPROT--ftps-implicit - --no-ftps-resume-ssl
-
不要恢复数据通道中的 SSL/TLS 会话。启动数据连接时, Wget 尝试恢复先前在控制连接中启动的 SSL/TLS 会话。 SSL/TLS 会话恢复通过重用避免执行全新的握手 上一个会话的 SSL/TLS 参数。通常,FTPS 服务器希望以这种方式, 所以 Wget 默认这样做。然而,在极少数情况下,人们可能想要 在每个数据连接中启动一个全新的 SSL/TLS 会话。 这就是“”的用途。--no-ftps-resume-ssl
- --ftps-clear-data-connection
-
所有数据连接都将采用纯文本格式。只有控制连接将是 在 SSL/TLS 下。Wget 将发送一个命令来实现这一点,它必须是 由服务器批准。
PROT C - --ftps-fallback-to-ftp
-
如果目标服务器不支持 FTPS,则回退到 FTP。出于安全原因, 默认情况下不断言此选项。默认行为是退出并显示错误。 如果服务器未成功回复初始命令,或者在 隐式 FTPS 的情况,如果初始 SSL/TLS 连接尝试被拒绝,则 认为此类服务器不支持FTPS。
AUTH TLS
2.11 递归检索选项
- -r
- --recursive
-
启用递归检索。请参阅递归下载,了解更多信息 详。默认最大深度为 5。
- -l depth
- --level=depth
-
将 Wget 递归到的最大子目录数设置为 。 为了防止在使用递归时意外下载非常大的网站 默认情况下,这仅限于 5 的深度,即它最多将遍历 5 个目录深度 从提供的 URL 开始。 为无限递归深度设置 '' 或 ''。depth-l 0-l inf
wget -r -l 0 http://site/1.html
理想情况下,人们会期望它只下载. 但不幸的是,情况并非如此,因为“”等效于 “——即无限递归。要下载单个(或少数几个)HTML页面,请在命令行上指定所有页面并省略“” 和“”。要下载查看单个 HTML 页面的基本项目,请参阅“”。1.html-l 0-l inf-r-lpage requisites
- --delete-after
-
此选项告诉 Wget 在这样做后删除它下载的每个文件。它对于预取流行的很有用 通过代理的页面,例如:
wget -r -nd --delete-after http://whatever.com/~popular/page/
“”选项是递归检索,而“”选项是不 创建目录。-r-nd
请注意,“”会删除本地计算机上的文件。它 不向远程 FTP 站点发出“”命令,对于 实例。另请注意,当指定 '' 时, “”被忽略,因此“”文件根本不是 首先创建。--delete-afterDELE--delete-after--convert-links.orig
- -k
- --convert-links
-
下载完成后,将文档中的链接转换为 使它们适合本地观看。这不仅影响可见的 超链接,但文档中链接到外部内容的任何部分, 例如嵌入图像、样式表链接、非 HTML 内容的超链接等。
每个链接将以以下两种方式之一进行更改:
- Wget 下载的文件链接将更改为 将他们指向的文件称为相对链接。
示例:如果下载的文件链接到 ,也已下载,则 中的链接将被修改为指向 ''。这种 转换可靠地适用于任意目录组合。/foo/doc.html/bar/img.gifdoc.html../bar/img.gif
- 指向尚未由 Wget 下载的文件的链接将被更改 以包含主机名和它们指向的位置的绝对路径。
示例:如果下载的文件链接到(或 ),则 中的链接将被修改为指向 。/foo/doc.html/bar/img.gif../bar/img.gifdoc.htmlhttp://hostname/bar/img.gif
因此,本地浏览可以可靠地工作:如果链接的文件是 下载后,链接将引用其本地名称;如果不是 下载后,链接将引用其完整的互联网地址,而不是 显示断开的链接。以前的链接被转换的事实 到相对链接可确保您可以将下载的层次结构移动到 另一个目录。
请注意,只有在下载结束时,Wget 才能知道哪些链接具有 已下载。因此,“”所做的工作将是 在所有下载结束时执行。-k
- Wget 下载的文件链接将更改为 将他们指向的文件称为相对链接。
- --convert-file-only
-
此选项仅转换 URL 的文件名部分,其余部分 的网址未受影响。此文件名部分有时称为 “basename”,尽管我们在这里避免使用该术语以免引起混淆。
它与“”配合使用特别好,尽管 不强制实施此耦合。事实证明,填充互联网缓存很有用 使用从不同主机下载的文件。--adjust-extension
示例:如果某些链接指向 断言的 '' 及其本地目标为 ,则链接将转换为 。请注意,只有文件名部分是 改 性。URL 的其余部分保持不变,包括网络路径 () 否则将由 Wget 处理并转换为 有效方案(即)。//foo.com/bar.cgi?xyz--adjust-extension./foo.com/bar.cgi?xyz.css//foo.com/bar.cgi?xyz.css
//http:// - -K
- --backup-converted
-
转换文件时,使用“”备份原始版本 后缀。影响 '' 的行为(请参阅 HTTP 时间戳内部)。.orig-N
- -m
- --mirror
-
打开适合镜像的选项。此选项启用递归 和时间戳,设置无限递归深度并保留FTP目录列表。它目前相当于 ''.-r -N -l inf --no-remove-listing
- -p
- --page-requisites
-
此选项会导致 Wget 下载所有必需的文件 正确显示给定的 HTML 页面。这包括诸如 内联图像、声音和引用样式表。
通常,在下载单个HTML页面时,任何必要的文档 正确显示可能需要的未下载。用 “”与“”一起可以提供帮助,但由于Wget没有 通常区分外部文档和内联文档,一种是 通常留下缺少其“叶子文档” 先决条件。-r-l
例如,假设文档包含一个标签 引用和指向外部的标记 公文。说这是相似的,但它 图像是,它链接到 。这样说 继续到一些任意高的数字。1.html
<IMG>1.gif<A>2.html2.html2.gif3.html如果执行命令:
wget -r -l 2 http://site/1.html
然后、、 和 将被下载。如您所见,是 没有它的必要条件,因为 Wget 只是在计算 远离的跃点数(最多 2 个)以确定 在何处停止递归。但是,使用此命令:1.html1.gif2.html2.gif3.html3.html3.gif1.html
wget -r -l 2 -p http://site/1.html
以上所有文件和必备文件都将被下载。同样地3.html3.gif
wget -r -l 1 -p http://site/1.html
将导致 、 和 被下载。有人可能会认为:1.html1.gif2.html2.gif
wget -r -l 0 -p http://site/1.html
只会下载和,但不幸的是 事实并非如此,因为 '' 等效于 “——即无限递归。下载单个 HTML 页面(或其中的几个,全部在命令行或 '' URL 输入文件)及其(或其)必要条件,只需省略即可 “”和“”:1.html1.gif-l 0-l inf-i-r-l
wget -p http://site/1.html
请注意,Wget 的行为就像指定了 '' 一样,但只有 将下载该单个页面及其必要条件。来自那里的链接 不会关注外部文档的页面。实际上,要下载 单个页面及其所有必需项(即使它们存在于单独的 网站),并确保该批次在本地正确显示,此作者 除了“”之外,喜欢使用一些选项:-r-p
wget -E -H -k -K -p http://site/document
为了结束这个话题,值得一提的是,Wget的想法是 外部文档链接是在标记、标记或 以外的标记中指定的任何 URL。
<A><AREA><LINK><LINK REL="stylesheet"> - --strict-comments
-
启用 HTML 注释的严格解析。默认值为终止 第一次出现“”时的注释。-->
根据规范,HTML 注释表示为 SGML 声明。声明是以 “”并以“”结尾,例如“”, 可能包含一对“”分隔符之间的注释。HTML 注释是“空声明”,SGML 声明没有任何 非注释文本。因此,“”是有效的注释,并且 “”也是如此,但“”不是。<!><!DOCTYPE ...>--<!--foo--><!--one-- --two--><!--1--2-->
另一方面,大多数HTML编写者并不认为注释是任何东西。 除了用“”和“”分隔的文本,这不是 完全一样。例如,类似“”的内容 只要破折号数是倍数,就可以作为有效的注释 的四个(!如果没有,评论在技术上会持续到下一个 “,可能位于文档的另一端。以 这一点,许多流行的浏览器完全忽略了规范和 实现用户的期望:注释分隔 “”和“”。<!----><!------------>--<!---->
直到 1.9 版本,Wget 对注释的解释都很严格,这导致了 许多网页中缺少链接,这些网页在浏览器中显示正常,但有 包含不合规评论的不幸。从 版本 1.9,Wget 已加入实现 “幼稚”注释,在第一次出现时终止每个注释 ''.-->
如果出于某种原因,您想要严格的注释解析,请使用此 选项将其打开。
2.12 递归接受/拒绝选项
- -A acclist --accept acclist
- -R rejlist --reject rejlist
-
将文件名后缀或模式的逗号分隔列表指定为 接受或拒绝(请参阅文件类型)。请注意,如果 任何通配符、“、”“、”“或 '',出现在 或 的元素中, 它将被视为一种模式,而不是后缀。 在这种情况下,您必须将模式括在引号中以防止 您的外壳不会扩展它,例如在“”或“”中。*?[]acclistrejlist-A "*.mp3"-A '*.mp3'
- --accept-regex urlregex
- --reject-regex urlregex
-
指定正则表达式以接受或拒绝完整的 URL。
我们可以像这样使用--reject-regex :--reject-regex="/thumbs/"。考虑到这现在是regex,而不是逗号分隔的字符串列表,我们可以通过regex1|regex2|regex3:--reject-regex="/thumbs/|/css/"排除多个文件夹。请记住,像.这样的字符在regex中有一个特殊的含义,需要转义才能成为文件夹名称:"/\.svn/"的一部分。
- --regex-type regextype
-
指定正则表达式类型。可能的类型为“”或''.请注意,为了能够使用“”类型,wget 必须是在 libpcre 支持下编译。posixpcrepcre
- -D domain-list
- --domains=domain-list
-
设置要关注的域。 是以逗号分隔的列表 的域。请注意,它不会打开“”。domain-list-H
- --exclude-domains domain-list
-
指定不遵循的域 (请参阅跨越主机)。
- --follow-ftp
-
遵循 HTML 文档中的 FTP 链接。如果没有此选项, Wget 将忽略所有 FTP 链接。
- --follow-tags=list
-
Wget 有一个 HTML 标签/属性对的内部表,它 在递归期间查找链接文档时考虑 检索。如果用户只希望这些标签的子集 但是,考虑到他或她应该在 使用此选项以逗号分隔。list
- --ignore-tags=list
-
这与“”选项相反。要跳过 递归查找要下载的文档时的某些 HTML 标记, 以逗号分隔的 中指定它们。--follow-tagslist
过去,此选项是下载单个页面的最佳选择。 及其必要条件,使用如下命令行:
wget --ignore-tags=a,area -H -k -K -r http://site/document
但是,此选项的作者遇到了一个带有类似标签的页面,并意识到 指定要忽略的标记是不够的。不能只告诉Wget去 忽略 ,因为这样就不会下载样式表。 现在,下载单个页面及其必备条件的最佳选择是 专用“”选项。
<LINK REL="home" HREF="/"><LINK>--page-requisites - --ignore-case
-
匹配文件和目录时忽略大小写。这会影响 -R、-A、-I 和 -X 选项的行为,以及通配 从 FTP 站点下载时实现。例如,有了这个 选项,“”将匹配“”,但也 “”、“”等。 示例中的引号是为了防止外壳扩展 模式。-A "*.txt"file1.txtfile2.TXTfile3.TxT
- -H
- --span-hosts
-
在执行递归检索时启用跨主机 (请参阅跨越主机)。
- -L
- --relative
-
仅关注相对链接。用于检索特定主页 没有任何干扰,即使是来自同一主机的人 (请参阅相对链接)。
- -I list
- --include-directories=list
-
指定您希望在以下情况下遵循的目录的逗号分隔列表 下载(请参阅基于目录的限制)。元素 可能包含通配符。list
- -X list
- --exclude-directories=list
-
指定要从中排除的目录的逗号分隔列表 下载(请参阅基于目录的限制)。的元素可能包含通配符。list
- -np
- --no-parent
-
递归检索时,不要上升到父目录。 这是一个有用的选项,因为它保证仅下载特定层次结构下的文件。 有关更多详细信息,请参阅基于目录的限制。
2.13 退出状态
如果遇到问题,Wget 可能会返回多个错误代码之一。
- 0
-
未发生任何问题。
- 1
-
一般错误代码。
- 2
-
解析错误 — 例如,在解析命令行选项时, “”或“”....wgetrc.netrc
- 3
-
文件 I/O 错误。
- 4
-
网络故障。
- 5
-
SSL 验证失败。
- 6
-
用户名/密码身份验证失败。
- 7
-
协议错误。
- 8
-
服务器发出错误响应。
除 0 和 1 外,编号较低的退出代码采用 当出现多种类型的错误时,优先于编号较高的错误 遇到。
在 1.12 之前的 Wget 版本中,Wget 的退出状态往往是 无益且不一致。递归下载几乎总是 返回 0(成功),无论遇到任何问题,以及 非递归提取仅返回与 最近尝试的下载。
3 递归下载
GNU Wget能够遍历Web的各个部分(或单个HTTP或FTP服务器),遵循链接和目录结构。 我们将其称为递归检索或递归。
使用HTTP URL,Wget从给定的URL检索并解析HTML或CSS,检索文档的文件。 指,通过标记 like 或 ,或使用 '' 函数表示法指定的 CSS URI 值。 如果新下载的文件也是 、 或 的类型,则对其进行解析 并进一步跟进。hrefsrcurl()text/htmlapplication/xhtml+xmltext/css
HTTP 和 HTML/CSS 内容的递归检索是广度优先的。这意味着 Wget 首先下载请求的 文档,然后是从该文档链接的文档,然后 它们链接的文档,依此类推。换句话说,Wget First 下载深度为 1 的文档,然后下载深度为 2 的文档,依此类推 直到指定的最大深度。
指定了检索可能下降到的最大深度 使用“”选项。默认最大深度为五层。-l
当递归检索 FTP URL 时,Wget 将检索所有 给定目录树中的数据(包括子目录 up 到指定的深度),创建其镜像 本地。FTP 检索也受参数限制。与 HTTP 递归不同,执行 FTP 递归 深度优先。depth
默认情况下,Wget 将创建一个本地目录树,对应于 在远程服务器上找到的那个。
递归检索可以找到许多应用程序,其中最 其中重要的是镜像。它对于WWW演示以及网络速度慢的任何其他机会也很有用 应通过在本地存储文件来绕过连接。
应该警告您,递归下载可能会使遥控器过载 服务器。正因为如此,许多管理员对他们不屑一顾,可能会 禁止从您的网站访问,如果他们检测到非常快的下载量 内容量。从互联网服务器下载时,请考虑 使用 '' 选项在访问之间引入延迟 服务器。下载需要更长的时间,但服务器 管理员不会因您的粗鲁而惊慌。-w
当然,递归下载可能会导致您的计算机出现问题。如果 如果不检查运行,它很容易填满磁盘。如果下载 从本地网络,它还可以占用系统上的带宽,以及 消耗内存和 CPU。
尝试指定与您所属的下载类型匹配的条件 努力实现。如果您只想下载一个页面,请使用 '',没有任何额外的递归。如果需要帮助, 要在一个目录下下载内容,请使用“”以避免 从其他目录下载内容。如果您想下载全部 一个目录中的文件,使用 '' 确保递归 深度永远不会超过一个。有关详细信息,请参阅以下链接 关于这个。--page-requisites-np-l 1
应谨慎使用递归检索。不要说你不是 警告。
4 以下链接
递归检索时,不希望检索 不必要的数据。大多数时候,用户会牢记什么 他们想要下载,并希望Wget只关注特定的链接。
例如,如果您想从以下位置下载音乐存档 '',您将不想下载所有主页 恰好被档案中一个模糊的部分引用。fly.srk.fer.hr
Wget 拥有多种机制,可让您微调哪些 它将遵循的链接。
| • 跨越主机 | (取消)限制基于主机名的检索。 |
| • 文件类型 | 仅获取某些文件。 |
| • 基于目录的限制 | 仅获取某些目录。 |
| • 相对链接 | 仅关注相对链接。 |
| • FTP 链接 | 以下 FTP 链接。 |
4.1 跨越主机
Wget的递归检索通常拒绝访问主机不同 而不是您在命令行上指定的那个。这是一个合理的 违约;没有它,每次检索都有可能转向 你的Wget进入谷歌的一个小版本。
但是,有时访问不同的主机或跨越主机 一个有用的选择。也许图像是从不同的服务器提供的。 也许您正在镜像一个由相互链接的页面组成的网站 三台服务器。也许服务器有两个等效的名称,并且 HTML 页面可以互换引用这两个名称。
- 跨度到任何主机 — “”-H
-
“”选项打开主机跨越,从而允许 Wget 的 递归运行以访问链接引用的任何主机。除非足够 递归限制条件是应用深度的,这些外来主机将 通常链接到更多的主机,依此类推,直到 Wget 最终吸吮 数据比您预期的要多得多。-H
- 限制跨越到某些域 - “”-D
-
“”选项允许您指定将要 跟随,因此将递归限制为仅属于 这些域。显然,这只有在与 ''.一个典型的例子是下载 “,但允许从 “”等:-D-Hwww.example.comimages.example.com
wget -rH -Dexample.com http://www.example.com/
您可以通过用逗号分隔来指定多个地址, 例如“”。-Ddomain1.com,domain2.com
- 将下载从某些域中移出 - “”--exclude-domains
-
如果有您要专门排除的域,则可以执行此操作 带 '',接受相同类型的参数 ,但将排除所有列出的域。为 例如,如果要从“”下载所有主机 域,除了“”,你可以这样做 这:--exclude-domains-Dfoo.edusunsite.foo.edu
wget -rH -Dfoo.edu --exclude-domains sunsite.foo.edu \ http://www.foo.edu/
4.2 文件类型
从网络下载材料时,您经常需要限制 仅检索某些文件类型。例如,如果你是 有兴趣下载 GIFs,您不会欣喜若狂 大量的PostScript文档,反之亦然。
Wget 提供了两种选项来处理此问题。每个选项 说明 列出短名称、长名称和等效命令 在。.wgetrc
- -A acclist
- --accept acclist
- accept = acclist
- --accept-regex urlregex
- accept-regex = urlregex
-
“' 选项的参数是文件后缀的列表或 Wget 将在递归检索期间下载的模式。后缀 是文件的结尾部分,由“普通”字母组成, 例如“”或“”。匹配的模式包含类似贝壳 通配符,例如“”或“”。--acceptgif.jpgbooks*zelazny*196[0-9]*
因此,指定 '' 将使 Wget 仅下载 以“”或“”结尾的文件,即 GIFs 和 JPEGs。另一方面,“”将 仅下载以“”开头且包含数字的文件 从 1960 年到 1969 年的任何地方。查找外壳的手册 模式匹配工作原理的说明。wget -A gif,jpggifjpgwget -A "zelazny*196[0-9]*"zelazny
当然,任意数量的后缀和模式都可以组合成一个 逗号分隔的列表,并作为 '' 的参数给出。-A
'' 选项的参数是一个正则表达式,它 与完整的网址匹配。--accept-regex
- -R rejlist
- --reject rejlist
- reject = rejlist
- --reject-regex urlregex
- reject-regex = urlregex
-
“”选项的工作方式与“”相同,只是 它的逻辑是相反的;Wget 将下载除 与列表中的后缀(或模式)匹配的后缀。--reject--accept
因此,如果您想下载除繁琐的 MPEGs 和 .AU 文件,您可以使用 ''。 类似地,下载除以 开头的文件以外的所有文件 “”,使用“”。引号是为了防止 由壳牌扩展。wget -R mpg,mpeg,aubjorkwget -R "bjork*"
'' 选项的参数是一个正则表达式,它 与完整的网址匹配。--accept-regex
“”和“选项可以组合以实现均匀 更好地微调要检索的文件。例如,“”将下载所有将“”作为的文件 他们名称的一部分,但不是PostScript文件。-A-Rwget -A "*zelazny*" -R .pszelazny
请注意,这两个选项不会影响 HTML 文件的下载(由“”或“”文件名确定) 前缀)。此行为可能不是所有用户都希望的,并且可能是 针对 Wget 的未来版本进行了更改。.htm.html
另请注意,查询字符串(URL 开头末尾的字符串) 带问号 ('') 不包括在 接受/拒绝规则的文件名,即使这些规则实际上会 为本地文件选择的名称。预计 Wget 的未来版本将提供一个选项来允许匹配 针对查询字符串。?
最后,值得注意的是,接受/拒绝列表与下载的文件匹配两次:一次与URL的文件名匹配 部分,以确定是否应在第一个下载文件 地方;然后,在它被接受并成功下载后, 还会根据接受/拒绝列表检查本地文件的名称 以查看是否应将其删除。理由是,既然 始终下载“”和“”文件,无论 接受/拒绝规则,它们应在被移除后删除 下载并扫描链接(如果它们与接受/拒绝匹配) 列表。但是,这可能会导致意外的结果,因为本地 文件名可能与以下原始 URL 文件名不同 方式,所有这些都可以更改接受/拒绝规则是否匹配:.htm.html
- 如果本地文件已存在并且 '' 是 指定时,将在原始名称后附加一个数字后缀。--no-directories
- 如果指定了“”,则本地文件名可能具有 ''附在它后面。如果使用 '' 调用 Wget, 诸如“”之类的文件名将被接受,但是 下载将被命名为“”,不再匹配, 因此,该文件将被删除。--adjust-extension.html-E -A.phpindex.phpindex.php.html
- 查询字符串不参与 URL 匹配,但包含在 本地文件名,因此有助于文件名匹配。
这种行为也被认为是不理想的,并且可能会改变 在 Wget 的未来版本中。
4.3 基于目录的限制
无论其他链接跟踪功能如何,它通常都很有用 根据目录限制要检索的文件 这些文件被放置在其中。这可能有很多原因—— 主页可以以合理的目录结构组织;或一些 目录可能包含无用的信息,例如 或目录。/cgi-bin/dev
Wget 提供了三种不同的选项来处理此要求。每 选项说明列出了短名称、长名称和等效名称 命令。.wgetrc
- -I list
- --include list
- include_directories = list
-
'' 选项接受以逗号分隔的目录列表 在检索中。任何其他目录都将被忽略。这 目录是绝对路径。-I
因此,如果您想从“”下载 仅以下链接指向目录中的 Bozo 同事和 中的虚假脚本,您可以指定:http://host/people/bozo//people/cgi-bin
wget -I /people,/cgi-bin http://host/people/bozo/
- -X list
- --exclude list
- exclude_directories = list
-
“”选项与“”完全相反 - 这是一个列表 从下载中排除的目录。例如,如果您不想要 Wget 要从目录下载内容,请在命令行上指定 ''。-X-I/cgi-bin-X /cgi-bin
与“/”相同,这两个选项可以组合使用 以便更好地微调下载子目录。例如,如果您 想要从层次结构加载除 之外的所有文件,请指定 ''。-A-R/pub/pub/worthless-I/pub -X/pub/worthless
- -np
- --no-parent
- no_parent = on
-
限制目录的最简单且通常非常有用的方法是 不允许检索引用高于起始目录的层次结构的链接,即不允许上升到 父目录。
在这种情况下,“”选项(简称“”)很有用。 使用它可保证您永远不会离开现有层次结构。 假设您向 Wget 发出:--no-parent-np
wget -r --no-parent http://somehost/~luzer/my-archive/
您可以放心,任何引用或都不会 跟着。只会下载您感兴趣的存档。 本质上,“”类似于 '',只有它处理更多重定向 智能时尚。/~his-girls-homepage//~luzer/all-my-mpegs/--no-parent-I/~luzer/my-archive
请注意,对于 HTTP(和 HTTPS),尾部斜杠非常 对“”很重要。HTTP没有“目录”的概念——Wget 依靠你来指示什么是目录,什么不是。在 “,Wget 会认为 '' 是一个 目录,而在 '' 中(无尾部斜杠), '' 将被视为文件名(因此 '' 将是 毫无意义,因为它的父级是“”)。--no-parenthttp://foo/bar/barhttp://foo/barbar--no-parent/
4.4 相对链接
打开“”时,仅跟踪相对链接。 相对链接在这里定义那些不涉及网络的链接 服务器根目录。例如,这些链接是相对的:-L
<a href="foo.gif"> <a href="foo/bar.gif"> <a href="../foo/bar.gif">
这些链接不是相对的:
<a href="/foo.gif"> <a href="/foo/bar.gif"> <a href="http://www.example.com/foo/bar.gif">
使用此选项可确保递归检索不会跨越 主机,即使没有“”。在简单的情况下,它还允许下载 “只是工作”,而无需转换链接。-H
此选项可能不是很有用,将来可能会删除 释放。
4.5 以下 FTP 链接
FTP 的规则有些具体,因为它是必要的 他们要成为。HTML 文档中的 FTP 链接通常包含在内 供参考,下载通常不方便 默认情况下。
要从 HTML 文档中跟踪 FTP 链接,您需要 指定“”选项。完成此操作后,FTP 链接将跨越主机,而不考虑“”设置。这是合乎逻辑的, 因为FTP链接很少指向HTTP服务器所在的同一主机。出于类似的原因,“”选项没有 对此类下载的影响。另一方面,域名接受 (“”)和后缀规则(“”和“”)正常适用。--follow-ftp-H-L-D-A-R
另请注意,指向 FTP 目录的后续链接将不是 进一步递归检索。
5 时间戳
镜像来自 互联网正在更新您的档案。
一次又一次地下载整个存档,只是为了替换一些 更改文件在浪费带宽和金钱方面都很昂贵, 以及进行更新的时间。这就是为什么所有的镜像工具 提供增量更新选项。
这种更新机制意味着远程服务器被扫描 搜索新文件。只有这些新文件才会下载到 旧的地方。
如果满足以下两个条件之一,则文件被视为新文件:
- 本地尚不存在该名称的文件。
- 该名称的文件确实存在,但远程文件被修改得更多 最近比本地文件。
要实现这一点,程序需要知道最后的时间 修改本地和远程文件。我们将此信息称为文件的时间戳。
GNU Wget 中的时间戳是使用 '' 打开的 ('') 选项,或通过 中的指令。使用此选项,对于要下载的每个文件, Wget 将检查是否存在同名的本地文件。如果它 确实如此,并且远程文件不是较新的,Wget 不会下载它。--timestamping-Ntimestamping = on.wgetrc
如果本地文件不存在,或者文件大小不存在 匹配,无论时间戳如何,Wget 都会下载远程文件 说。
| • 时间戳使用 |
| • HTTP 时间戳内部 |
| • FTP 时间戳内部 |
下一篇: HTTP时间戳内部结构, 上一篇: 时间戳, 上一篇: 时间戳 [内容][索引]
5.1 时间戳用法
时间戳的使用很简单。假设您想下载 文件,以便保留其修改日期。
wget -S http://www.gnu.ai.mit.edu/
一个简单的表明本地文件上的时间戳等于 服务器返回的标头的状态。 如您所见,时间戳信息保留在本地,甚至 没有''(至少对于HTTP)。ls -lLast-Modified-N
几天后,您希望 Wget 检查远程文件是否具有 已更改,如果有,请下载它。
wget -N http://www.gnu.ai.mit.edu/
Wget 会向服务器询问上次修改日期。如果本地文件 具有与服务器相同的时间戳,或较新的时间戳,即远程文件 不会被重新获取。但是,如果远程文件较新, Wget 将继续获取它。
FTP也是如此。例如:
wget "ftp://ftp.ifi.uio.no/pub/emacs/gnus/*"
(该 URL 周围的引号是为了防止外壳试图 解释“”。*
下载后,本地目录列表将显示时间戳 匹配远程服务器上的那些。使用“”重新发出命令 将使 Wget 仅重新获取已修改的文件 自上次下载以来。-N
如果您希望每周镜像 GNU 存档,您可以使用 命令如下,每周一次:
wget --timestamping -r ftp://ftp.gnu.org/pub/gnu/
请注意,时间戳仅适用于服务器所针对的文件 给出一个时间戳。对于 HTTP,这取决于获取标头。对于 FTP,这取决于获得 包含 Wget 可以解析的格式的日期的目录列表 (请参阅 FTP 时间戳内部)。Last-Modified
下一篇: FTP时间戳内部结构, 上一篇: 时间戳用法 上一篇: 时间戳 [内容][索引]
5.2 HTTP时间戳内部
HTTP 中的时间戳是通过检查标头来实现的。如果您希望通过HTTP检索文件,Wget将检查本地是否存在。如果没有,将是 无条件检索。Last-Modifiedfoo.htmlfoo.htmlfoo.html
如果文件确实存在于本地,Wget 将首先检查其本地 时间戳(类似于检查它的方式),然后向远程服务器发送请求,要求在 远程文件。ls -lHEAD
检查标头以查找哪个文件是 最近修改了(这使它“更新”)。如果远程文件 较新,将被下载;如果它更老,Wget 会给 嗡阿拉伯数字Last-Modified
当“”(“”)一起指定时 使用“”,将服务器文件“”与本地文件进行比较 '',如果存在,而不是与本地文件进行比较 '',如果它被转换为 '' ('').--backup-converted-K-NXX.origX--convert-links-k
可以说,HTTP时间戳应该使用请求来实现。If-Modified-Since
上一篇: HTTP时间戳内部结构: 时间戳 [内容][索引]
5.3 FTP时间戳内部
从理论上讲,FTP 时间戳的工作方式与 HTTP 大致相同,只是 FTP 没有标头 - 时间戳必须从目录中删除 清单。
如果FTP下载是递归的或使用通配,Wget将使用FTP命令获取目录的文件列表 包含所需的文件。它将尝试分析列表, 将其视为Unix输出,提取时间戳。 其余的与HTTP完全相同。请注意,当 从 FTP 服务器检索单个文件而不使用 通配或递归,列表文件将不会下载(因此 文件不会加盖时间戳),除非指定了“”。LISTls -l-N
假设每个目录列表都是 Unix 样式的列表,可能 听起来非常有限,但实际上并非如此,因为很多 非Unix FTP服务器使用Unixoid列表格式,因为大多数 (全部?的客户理解它。请记住,RFC959 没有定义获取文件列表的标准方法,更不用说时间戳了。 我们只能希望未来的标准能够定义这一点。
另一个非标准解决方案包括使用命令 某些FTP服务器(包括流行的)支持,它返回指定文件的确切时间。 Wget 将来可能会支持此命令。MDTMwu-ftpd
6 启动文件
一旦您知道如何通过命令更改Wget的默认设置 行参数,您可能希望将其中一些设置永久化。 您可以通过创建 Wget 启动以方便的方式做到这一点 文件 - 。.wgetrc
除了是“主”初始化文件之外,它是 方便拥有用于存储密码的特殊设施。因此,Wget 读取和解释 的内容,如果找到 它。您可以在系统手册中找到格式。.wgetrc$HOME/.netrc.netrc
Wget 在启动时读取,识别一组有限的 命令。.wgetrc
| • Wgetrc位置 | 各种 wgetrc 文件的位置。 |
| • Wgetrc 语法 | wgetrc的语法。 |
| • Wgetrc 命令 | 可用命令列表。 |
| • 样品 Wgetrc | 一个wgetrc的例子。 |
6.1 Wgetrc位置
初始化时,Wget 将查找全局启动文件,默认情况下(如果 Wget 未安装,则查找除 ,则为前缀)并读取命令 从那里,如果它存在。/usr/local/etc/wgetrc/usr/local
然后它将查找用户的文件。如果设置了环境变量,Wget 将尝试加载该文件。如果做不到这一点,就没有 将进行进一步的尝试。WGETRC
如果未设置,Wget 将尝试加载 。WGETRC$HOME/.wgetrc
用户设置在系统范围的设置之后加载的事实 意味着在发生冲突的情况下,用户的 wgetrc 会覆盖 系统范围的 WGETRC(默认为 in)。 法西斯管理员,走!/usr/local/etc/wgetrc
6.2 Wgetrc语法
wgetrc 命令的语法很简单:
variable = value
该变量也将称为命令。不同命令的有效值不同。
这些命令不区分大小写、下划线和减号。因此 “”、“”和“”是相同的。 空行、以 '' 开头的行和包含空格的行 仅被丢弃。DIr__PrefiXDIr-PrefiXdirprefix#
需要逗号分隔列表的命令将清除 空命令。因此,如果您希望重置中指定的拒绝列表 全局 ,您可以使用:wgetrc
reject =
6.3 Wgetrc命令
下面列出了完整的命令集。列出了法律值 在“”之后。可以使用以下命令设置或取消设置简单的布尔值 “”和“或”“和””。=onoff10
某些命令采用伪任意值。 值可以是 主机名或点分四边形 IP 地址。 可以是任何积极的 整数,或“”表示无穷大(如果适用)。 值可以是任何非空字符串。addressninfstring
这些命令中的大多数都有直接的命令行等效项。此外,任何 wgetrc 命令可以在命令行上使用 '' 开关(请参阅基本启动选项。)--execute
- 接受/拒绝 =string
-
与“/”相同(请参阅文件类型)。-A-R
- add_hostdir = 开/关
-
启用/禁用以主机为前缀的文件名。“”禁用它。-nH
- ask_password = 开/关
-
提示为每个建立的连接输入密码。无法指定 当使用“”时,因为它们是相互的 独家。等效于“”。--password--ask-password
- auth_no_challenge = 开/关
-
如果给出此选项,Wget 将发送基本 HTTP 身份验证 所有请求的信息(纯文本用户名和密码)。看 ''.--auth-no-challenge
- 背景 = 开/关
-
启用/禁用进入后台 - 与“”(这 启用它)。-b
- backup_converted = 开/关
-
启用/禁用保存带有后缀的预转换文件 “”—与“”相同(启用它)。.orig-K
- 备份 =number
-
最多使用文件的备份。备份轮换方式为 添加从“”开始的增量计数器。默认值为 ''.number10
- 基数 =string
-
考虑输入文件中的相对 URL(通过 “”命令或“/”选项, 与“”或“”一起) 作为相对于 —与 '' 相同。input--input-file-iforce_html--force-htmlstring--base=string
- bind_address =address
-
绑定到 ,就像 '' 一样。address--bind-address=address
- ca_certificate =file
-
将证书颁发机构捆绑包文件设置为 。一样 作为“”。file--ca-certificate=file
- ca_directory =directory
-
设置用于证书颁发机构的目录。同 ''.--ca-directory=directory
- 缓存 = 开/关
-
设置为关闭时,不允许服务器缓存。请参阅“” 选择。--no-cache
- 证书 =file
-
将客户端证书文件名设置为 。同 ''.file--certificate=file
- certificate_type =string
-
指定客户端证书的类型,合法值为 “”(默认值)和“”(又名 ASN1)。同 ''.PEMDER--certificate-type=string
- check_certificate = 开/关
-
如果设置为关闭,则不检查服务器证书 指定的客户端权限。默认值为“开”。同 ''.--check-certificate
- connect_timeout =n
-
设置连接超时 - 与“”相同。--connect-timeout
- content_disposition = 开/关
-
打开(非标准)“”的识别 HTTP 标头 - 如果设置为“”,则与“”相同。Content-Dispositionon--content-disposition
- trust_server_names = 开/关
-
如果设置为 on,则从重定向 URL 构造本地文件名 而不是原始网址。
- 继续 = 开/关
-
如果设置为 on,则强制继续预先存在的部分检索 文件。在设置之前,请参阅“”。-c
- convert_links = 开/关
-
在本地转换非相对链接。与“”相同。-k
- 饼干 = 开/关
-
设置为关闭时,禁止使用 Cookie。请参阅“”选项。--cookies
- cut_dirs =n
-
忽略远程目录组件。相当于 ''.n--cut-dirs=n
- 调试 = 开/关
-
调试模式,与“”相同。-d
- default_page =string
-
默认页面名称 - 与“”相同。--default-page=string
- delete_after = 开/关
-
下载后删除 - 与“”相同。--delete-after
- dir_prefix =string
-
目录树顶部 - 与“”相同。-P string
- 目录 = 开/关
-
打开或关闭目录 - 与“”或“”相同, 分别。-x-nd
- dns_cache = 开/关
-
打开/关闭 DNS 缓存。由于 DNS 缓存默认处于打开状态,因此此 选项通常用于将其关闭,相当于 ''.--no-dns-cache
- dns_timeout =n
-
设置 DNS 超时 - 与“”相同。--dns-timeout
- 域 =string
-
与“”相同(请参阅跨越主机)。-D
- dot_bytes =n
-
指定点中“包含”的字节数,如整个所示 检索(默认为 1024)。您可以将该值后缀为 “”或“,代表千字节和兆字节, 分别。使用点设置,您可以定制点检索 满足您的需求,也可以使用预定义的样式(请参阅下载选项)。km
- dot_spacing =n
-
指定单个聚类中的点数(默认为 10)。
- dots_in_line =n
-
指定将在整个过程中每行中打印的点数 检索(默认为 50)。
- egd_file =file
-
用作 EGD 套接字文件名。同 ''.string--egd-file=file
- exclude_directories =string
-
指定要从中排除的目录的逗号分隔列表 下载 — 与“”相同(请参阅基于目录的限制)。-X string
- exclude_domains =string
-
与“”相同(请参阅跨越主机)。--exclude-domains=string
- follow_ftp = 开/关
-
跟踪 HTML 文档中的 FTP 链接 — 与 ''.--follow-ftp
- follow_tags =string
-
在执行递归检索时仅遵循某些 HTML 标记, 就像“''一样。--follow-tags=string
- force_html = 开/关
-
如果设置为 on,则强制将输入文件名视为 HTML 文档,与 '' 相同。-F
- ftp_password =string
-
将 FTP 密码设置为 。如果没有此设置,则 密码默认为 '',这是有用的默认值 匿名 FTP 访问。string-wget@
此命令曾经在 Wget 1.10 之前命名。
passwd - ftp_proxy =string
-
用作 FTP 代理,而不是 中指定的代理 环境。string
- ftp_user =string
-
将 FTP 用户设置为 。string
此命令曾经在 Wget 1.10 之前命名。
login - 全球 = 开/关
-
打开/关闭通配 - 与“”和“”相同。--glob--no-glob
- 标头 =string
-
定义 HTTP 下载的标头,例如使用 ''.--header=string
- 压缩 =string
-
选择要使用的压缩类型。法律值为“” (默认值)、“”和“”。同 ''.autogzipnone--compression=string
- adjust_extension = 开/关
-
将“”扩展添加到“”或 缺少文件的文件,一个 '' 缺少“”文件的扩展名,以及“”, “”、“”或“”到压缩文件,如 ''.以前命名为 ''(仍然可以接受, 但已弃用)。.htmltext/htmlapplication/xhtml+xml.csstext/css.br.Z.zlib.gz-Ehtml_extension
- http_keep_alive = 开/关
-
打开或关闭保持活动状态功能(默认为打开)。转动它 关闭等效于“”。--no-http-keep-alive
- http_password =string
-
设置 HTTP 密码,相当于 ''.--http-password=string
- http_proxy =string
-
用作 HTTP 代理,而不是 中指定的代理 环境。string
- http_user =string
-
将 HTTP 用户设置为 ,等效于 ''.string--http-user=string
- https_only = 开/关
-
在递归模式下,仅遵循 HTTPS 链接(默认为 off)。
- https_proxy =string
-
用作 HTTPS 代理,而不是 中指定的代理 环境。string
- ignore_case = 开/关
-
设置为 on 时,不区分大小写匹配文件和目录;这 与“”相同。--ignore-case
- ignore_length = 开/关
-
设置为 on 时,忽略标头;同 ''.
Content-Length--ignore-length - ignore_tags =string
-
执行递归检索时忽略某些 HTML 标记,例如 ''.--ignore-tags=string
- include_directories =string
-
指定您希望在以下情况下遵循的目录的逗号分隔列表 正在下载 - 与“”相同。-I string
- IRI = 开/关
-
设置为 on 时,启用国际化 URI (IRI) 支持;同 ''.--iri
- inet4_only = 开/关
-
强制连接到 IPv4 地址,默认情况下处于关闭状态。你可以把这个 在全局初始化文件中禁用 Wget 的解析尝试和 连接到 IPv6 主机。仅当 Wget 使用 IPv6 编译时才可用 支持。与“”或“”相同。--inet4-only-4
- inet6_only = 开/关
-
强制连接到 IPv6 地址,默认情况下处于关闭状态。仅在以下情况下可用 Wget是在IPv6支持下编译的。与“”相同 或“”。--inet6-only-6
- 输入 =file
-
从 中读取 URL s,例如 ''。string-i file
- keep_session_cookies = 开/关
-
指定时,会导致 '' 也保存会话 饼干。请参阅“”。save_cookies = on--keep-session-cookies
- limit_rate =rate
-
将下载速度限制为不超过每秒字节数。 与“”相同。rate--limit-rate=rate
- load_cookies =file
-
从 加载饼干。请参阅“”。file--load-cookies file
- local_encoding =encoding
-
强制 Wget 用作默认系统编码。看 ''.encoding--local-encoding
- 日志文件 =file
-
将日志文件设置为 ,与 '' 相同。file-o file
- max_redirect =number
-
指定资源要遵循的最大重定向数。 请参阅“”。--max-redirect=number
- 镜像 = 开/关
-
打开/关闭镜像。与“”相同。-m
- 网络 = 开/关
-
打开或关闭阅读网络。
- no_clobber = 开/关
-
与“”相同。-nc
- no_parent = 开/关
-
禁止在目录层次结构之外检索,例如 “”(请参阅基于目录的限制)。--no-parent
- no_proxy =string
-
用作要避免的域的逗号分隔列表 代理加载,而不是在环境中指定的代理加载。string
- output_document =file
-
设置输出文件名 - 与“”相同。-O file
- page_requisites = 开/关
-
下载单个 HTML 页面所需的所有辅助文档 正确显示 - 与“”相同。-p
- passive_ftp = 开/关
-
更改被动 FTP 的设置,等效于 “”选项。--passive-ftp
- 密码 =string
-
指定用于 FTP 和 HTTP 文件检索的密码。 可以使用“”和 分别用于 FTP 和 HTTP 的 '' 命令。stringftp_passwordhttp_password
- post_data =string
-
使用 POST 作为所有 HTTP 请求的方法并发送 请求正文。与“”相同。string--post-data=string
- post_file =file
-
使用 POST 作为所有 HTTP 请求的方法,并在请求正文中发送 的内容。同 ''.file--post-file=file
- prefer_family = 无/IPv4/IPv6
-
当可以选择多个地址时,请连接到这些地址 首先使用指定的地址族。返回的地址顺序 默认情况下,DNS 无需更改即可使用。与“”相同, 有关为什么这很有用的详细讨论,请参阅。--prefer-family
- private_key =file
-
将私钥文件设置为 。同 ''.file--private-key=file
- private_key_type =string
-
指定私钥的类型,合法值为“” (默认值)和“”(又名 ASN1)。同 ''.PEMDER--private-type=string
- 进度 =string
-
设置进度指示器的类型。法律类型为“” 和“”。等效于“”。dotbar--progress=string
- protocol_directories = 开/关
-
设置后,使用协议名称作为本地文件的目录组件 名字。与“”相同。--protocol-directories
- proxy_password =string
-
将代理身份验证密码设置为 ,例如 ''.string--proxy-password=string
- proxy_user =string
-
将代理身份验证用户名设置为 ,例如 ''.string--proxy-user=string
- 安静 = 开/关
-
安静模式 - 与“”相同。-q
- 配额 =quota
-
指定下载配额,这对于放入全局 .指定下载配额后,Wget 将停止 在下载总和大于配额后进行检索。这 配额可以以字节为单位指定(默认),附加千字节'')或 兆字节(附加“”)。因此,“”将设置配额 到 5 兆字节。请注意,用户的启动文件覆盖了系统 设置。wgetrckmquota = 5m
- random_file =file
-
在缺少 .file/dev/random
- random_wait = 开/关
-
打开或关闭请求之间的随机等待时间。同 ''.--random-wait
- read_timeout =n
-
设置读取(和写入)超时 — 与 ''.--read-timeout=n
- 后仰 =n
-
递归级别(深度)— 与“”相同。-l n
- 递归 = 开/关
-
递归开/关 - 与“”相同。-r
- 引用者 =string
-
设置 HTTP '' 标头,就像 ''.(请注意,是写的人 HTTP规范谁把“引用者”的拼写弄错了。Referer:--referer=string
- relative_only = 开/关
-
仅关注相对链接 — 与“”相同(请参阅相对链接)。-L
- remote_encoding =encoding
-
强制 Wget 用作默认的远程服务器编码。 请参阅“”。encoding--remote-encoding
- remove_listing = 开/关
-
如果设置为 on,请删除 Wget 下载的 FTP 列表。设置它 关闭与“”相同。--no-remove-listing
- restrict_file_names = Unix/Windows
-
限制 Wget 从 URL 生成的文件名。看 '',以获取更详细的说明。--restrict-file-names
- retr_symlinks = 开/关
-
设置为 on 时,检索符号链接,就好像它们是纯文件一样;这 与“”相同。--retr-symlinks
- retry_connrefused = 开/关
-
设置为 on 时,将“连接被拒绝”视为瞬态 错误 - 与“”相同。--retry-connrefused
- 机器人 = 开/关
-
指定 wget 是否遵守 norobots 约定,“on”由 违约。此开关同时控制 和 规范的“”方面。请参阅机器人排除,了解更多信息 有关此的详细信息。在转弯之前确保您知道自己在做什么 这关了。/robots.txtnofollow
- save_cookies =file
-
将饼干保存到 。与“”相同。file--save-cookies file
- save_headers = 开/关
-
与“”相同。--save-headers
- secure_protocol =string
-
选择要使用的安全协议。法律值为“” (默认值)、“、”“和”。一样 作为“”。autoSSLv2SSLv3TLSv1--secure-protocol=string
- server_response = 开/关
-
选择是否打印 HTTP 和 FTP 服务器 响应 - 与“”相同。-S
- show_all_dns_entries = 开/关
-
解析 DNS 名称后,显示所有 IP 地址,而不仅仅是第一个 IP 地址 三。
- span_hosts = 开/关
-
与“”相同。-H
- 蜘蛛 = 开/关
-
与“”相同。--spider
- strict_comments = 开/关
-
与“”相同。--strict-comments
- 超时 =n
-
将所有适用的超时值设置为 ,与 '' 相同。n-T n
- 时间戳 = 开/关
-
打开/关闭时间戳。与“”相同(请参阅时间戳)。-N
- use_server_timestamps = 开/关
-
如果设置为 '',Wget 不会通过 一个在服务器上(与“”相同)。off--no-use-server-timestamps
- 尝试 =n
-
设置每个网址的重试次数,与“”相同。-t n
- use_proxy = 开/关
-
设置为关闭时,即使与代理相关的环境也不要使用代理 设置变量。在这种情况下,它与使用 ''.--no-proxy
- 用户 =string
-
指定用于 FTP 和 HTTP 文件检索的用户名。 可以使用“”和 分别用于 FTP 和 HTTP 的 '' 命令。stringftp_userhttp_user
- user_agent =string
-
发送到 HTTP 服务器的用户代理标识 — 与 ''.--user-agent=string
- 详细 = 开/关
-
打开/关闭详细 - 与“/”相同。-v-nv
- 等待 =n
-
在两次检索之间等待几秒钟 - 与“”相同。n-w n
- wait_retry =n
-
在重试失败的检索之间等待长达几秒钟的时间 仅 - 与“”相同。请注意,这是 默认情况下,在全局 .n--waitretry=nwgetrc
6.4 示例 Wgetrc
这是示例初始化文件,如发行版中给出的。 它分为两个部分 - 一个用于全球使用(适用于全球 启动文件),一个用于本地使用(适用于 )。小心你改变的东西。$HOME/.wgetrc
请注意,几乎所有的行都被注释掉了。对于要具有的命令 任何效果,都必须删除开头的“”字符 它的线。#
### ### Sample Wget initialization file .wgetrc ### ## You can use this file to change the default behaviour of wget or to ## avoid having to type many many command-line options. This file does ## not contain a comprehensive list of commands -- look at the manual ## to find out what you can put into this file. You can find this here: ## $ info wget.info 'Startup File' ## Or online here: ## https://www.gnu.org/software/wget/manual/wget.html#Startup-File ## ## Wget initialization file can reside in /usr/local/etc/wgetrc ## (global, for all users) or $HOME/.wgetrc (for a single user). ## ## To use the settings in this file, you will have to uncomment them, ## as well as change them, in most cases, as the values on the ## commented-out lines are the default values (e.g. "off"). ## ## Command are case-, underscore- and minus-insensitive. ## For example ftp_proxy, ftp-proxy and ftpproxy are the same. ## ## Global settings (useful for setting up in /usr/local/etc/wgetrc). ## Think well before you change them, since they may reduce wget's ## functionality, and make it behave contrary to the documentation: ## # You can set retrieve quota for beginners by specifying a value # optionally followed by 'K' (kilobytes) or 'M' (megabytes). The # default quota is unlimited. #quota = inf # You can lower (or raise) the default number of retries when # downloading a file (default is 20). #tries = 20 # Lowering the maximum depth of the recursive retrieval is handy to # prevent newbies from going too "deep" when they unwittingly start # the recursive retrieval. The default is 5. #reclevel = 5 # By default Wget uses "passive FTP" transfer where the client # initiates the data connection to the server rather than the other # way around. That is required on systems behind NAT where the client # computer cannot be easily reached from the Internet. However, some # firewalls software explicitly supports active FTP and in fact has # problems supporting passive transfer. If you are in such # environment, use "passive_ftp = off" to revert to active FTP. #passive_ftp = off # The "wait" command below makes Wget wait between every connection. # If, instead, you want Wget to wait only between retries of failed # downloads, set waitretry to maximum number of seconds to wait (Wget # will use "linear backoff", waiting 1 second after the first failure # on a file, 2 seconds after the second failure, etc. up to this max). #waitretry = 10 ## ## Local settings (for a user to set in his $HOME/.wgetrc). It is ## *highly* undesirable to put these settings in the global file, since ## they are potentially dangerous to "normal" users. ## ## Even when setting up your own ~/.wgetrc, you should know what you ## are doing before doing so. ## # Set this to on to use timestamping by default: #timestamping = off # It is a good idea to make Wget send your email address in a `From:' # header with your request (so that server administrators can contact # you in case of errors). Wget does *not* send `From:' by default. #header = From: Your Name <username@site.domain> # You can set up other headers, like Accept-Language. Accept-Language # is *not* sent by default. #header = Accept-Language: en # You can set the default proxies for Wget to use for http, https, and ftp. # They will override the value in the environment. #https_proxy = http://proxy.yoyodyne.com:18023/ #http_proxy = http://proxy.yoyodyne.com:18023/ #ftp_proxy = http://proxy.yoyodyne.com:18023/ # If you do not want to use proxy at all, set this to off. #use_proxy = on # You can customize the retrieval outlook. Valid options are default, # binary, mega and micro. #dot_style = default # Setting this to off makes Wget not download /robots.txt. Be sure to # know *exactly* what /robots.txt is and how it is used before changing # the default! #robots = on # It can be useful to make Wget wait between connections. Set this to # the number of seconds you want Wget to wait. #wait = 0 # You can force creating directory structure, even if a single is being # retrieved, by setting this to on. #dirstruct = off # You can turn on recursive retrieving by default (don't do this if # you are not sure you know what it means) by setting this to on. #recursive = off # To always back up file X as X.orig before converting its links (due # to -k / --convert-links / convert_links = on having been specified), # set this variable to on: #backup_converted = off # To have Wget follow FTP links from HTML files by default, set this # to on: #follow_ftp = off # To try ipv6 addresses first: #prefer-family = IPv6 # Set default IRI support state #iri = off # Force the default system encoding #localencoding = UTF-8 # Force the default remote server encoding #remoteencoding = UTF-8 # Turn on to prevent following non-HTTPS links when in recursive mode #httpsonly = off # Tune HTTPS security (auto, SSLv2, SSLv3, TLSv1, PFS) #secureprotocol = auto
7 示例
这些示例根据其松散地分为三个部分 复杂性。
| • 使用简单 | 程序的简单,基本用法。 |
| • 高级用法 | 高级提示。 |
| •非常高级的使用 | 毛茸茸的东西。 |
7.1 简单用法
- 假设您要下载一个网址。只需输入:
wget http://fly.srk.fer.hr/
- 但是,如果连接速度慢且文件很长,会发生什么? 在检索整个文件之前,连接可能会失败, 不止一次。在这种情况下,Wget 将尝试获取文件,直到它 要么获取全部内容,要么超过默认重试次数 (这是20)。很容易将尝试次数更改为 45,以 确保整个文件安全到达:
wget --tries=45 http://fly.srk.fer.hr/jpg/flyweb.jpg
- 现在让我们让 Wget 在后台工作,并编写其进度 到日志文件 。输入“”很累,所以我们 应使用“”。log--tries-t
wget -t 45 -o log http://fly.srk.fer.hr/jpg/flyweb.jpg &
行尾的与号确保 Wget 在 背景。要取消限制重试次数,请使用“”。-t inf
- FTP的使用非常简单。Wget 将负责登录和 密码。
wget ftp://gnjilux.srk.fer.hr/welcome.msg
- 如果指定目录,Wget 将检索目录列表, 解析它并将其转换为 HTML。尝试:
wget ftp://ftp.gnu.org/pub/gnu/ links index.html
7.2 高级用法
- 您有一个包含要下载的 URL 的文件?使用 '' 开关:-i
wget -i file
如果指定 '' 作为文件名,则将从中读取 URLs 标准输入。-
- 创建 GNU 网站的五级深度镜像,使用 与原始目录结构相同,每次仅尝试一次 文档,将活动日志保存到:gnulog
wget -r https://www.gnu.org/ -o gnulog
- 与上述相同,但将下载文件中的链接转换为 指向“本地文件”,以便您可以脱机查看文档:
wget --convert-links -r https://www.gnu.org/ -o gnulog
- 仅检索一个 HTML 页面,但请确保所需的所有元素 用于要显示的页面,例如内联图像和外部样式 工作表,也下载。还要确保下载的页面 引用下载的链接。
wget -p --convert-links http://www.example.com/dir/page.html
HTML 页面将保存到 和 图像、样式表等,位于 , 取决于它们在远程服务器上的位置。www.example.com/dir/page.htmlwww.example.com/
- 与上述相同,但没有目录。 事实上,我不想拥有所有这些随机的服务器目录 无论如何,只需将所有这些文件保存在当前目录的子目录下即可。www.example.com/download/
wget -p --convert-links -nH -nd -Pdownload \ http://www.example.com/dir/page.html
- 检索 '' 的索引.html,显示原始索引 服务器标头:www.lycos.com
wget -S http://www.lycos.com/
- 将服务器头与文件一起保存,可能用于后处理。
wget --save-headers http://www.lycos.com/ more index.html
- 检索“”的前两个级别,保存它们 自。wuarchive.wustl.edu/tmp
wget -r -l2 -P/tmp ftp://wuarchive.wustl.edu/
- 您想从 HTTP 服务器上的目录中下载所有 GIF。你试过'',但是 不起作用,因为 HTTP 检索不支持通配。在 在这种情况下,请使用:wget http://www.example.com/dir/*.gif
wget -r -l1 --no-parent -A.gif http://www.example.com/dir/
更啰嗦,但效果是一样的。“”表示 递归检索(请参阅递归下载),深度最大 的 1.'' 表示对父目录的引用 被忽略(请参阅基于目录的限制),并且 '' 表示 仅下载 GIF 文件。''本来可以工作的 太。-r -l1--no-parent-A.gif-A "*.gif"
- 假设您正在下载,而 Wget 是 打断。现在,您不想破坏已经存在的文件。 它将是:
wget -nc -r https://www.gnu.org/
- 如果要将自己的用户名和密码编码为 HTTP 或 FTP,请使用适当的 URL 语法(请参阅 URL 格式)。
wget ftp://hniksic:mypassword@unix.example.com/.emacs
但请注意,在多用户系统上不建议使用此用法 因为它会向任何查看 输出的人显示您的密码。
ps - 您希望输出文档转到标准输出而不是 到文件?
wget -O - http://jagor.srce.hr/ http://www.srce.hr/
还可以组合这两个选项并创建管道以检索 远程热列表中的文档:
wget -O - http://cool.list.com/ | wget --force-html -i -
7.3 非常高级的用法
- 如果您希望 Wget 保留页面(或 FTP 子目录)的镜像,请使用 '' (''),这是简写 对于“”。你可以把 Wget 放在 crontab 文件中询问它 要在每个星期日重新检查网站:--mirror-m-r -l inf -N
crontab 0 0 * * 0 wget --mirror https://www.gnu.org/ -o /home/me/weeklog
- 除上述内容外,您还希望将链接转换为本地链接 查看。但是,阅读本手册后,您知道该链接 转换不能很好地使用时间戳,所以你也希望 Wget 在转换之前备份原始 HTML 文件。Wget 调用 看起来像这样:
wget --mirror --convert-links --backup-converted \ https://www.gnu.org/ -o /home/me/weeklog
- 但是您也注意到,本地查看效果不佳 当 HTML 文件以“”以外的扩展名保存时, 也许是因为他们被担任.所以你想要 Wget 重命名所有以内容类型“”提供的文件 或 '' 到 。.htmlindex.cgitext/htmlapplication/xhtml+xmlname.html
wget --mirror --convert-links --backup-converted \ --html-extension -o /home/me/weeklog \ https://www.gnu.org/
或者,少打字:
wget -m -k -K -E https://www.gnu.org/ -o /home/me/weeklog
8 各种
本章包含所有在其他任何地方都无法容纳的内容。
| • 代理 | 支持代理服务器。 |
| • 分销 | 获取最新版本。 |
| • 网站 | GNU Wget 在万维网上的存在。 |
| • 邮件列表 | Wget 邮件列表用于公告和讨论。 |
| • 互联网中继聊天 | Wget在IRC上的存在。 |
| • 报告错误 | 如何以及在何处报告错误。 |
| • 便携性 | Wget工作的系统。 |
| • 信号 | 由 Wget 执行的信号处理。 |
8.1 代理
代理是专用的 HTTP 服务器,旨在传输 从远程服务器到本地客户端的数据。代理的一种典型用法 减轻了慢速连接背后的用户网络负载。这是 通过引导所有 HTTP 和 FTP 请求来实现 缓存传输数据的代理。当缓存的资源 再次请求,代理将从缓存中返回数据。另一种用途 代理适用于(出于安全原因)将其分开的公司 来自互联网其余部分的内部网络。为了获得 来自 Web 的信息,其用户连接和检索远程数据 使用授权代理。
Wget 支持代理进行 HTTP 和 FTP 检索。这 指定代理位置的标准方法,Wget 识别,正在使用 以下环境变量:
http_proxyhttps_proxy-
如果设置,和变量应 分别包含 HTTP 和 HTTPS 连接的代理的 URL。
http_proxyhttps_proxy ftp_proxy-
此变量应包含 FTP 连接的代理的 URL。和设置为同一 URL 是很常见的。
http_proxyftp_proxy no_proxy-
此变量应包含以逗号分隔的域扩展列表 不应使用代理。例如,如果 的值为 '',则不会使用代理来检索 麻省理工学院的文件。
no_proxy.mit.edu
除了环境变量,代理位置和设置 可以从 Wget 本身中指定。
- --no-proxy
- proxy = on/off
-
此选项和相应的命令可用于抑制 使用代理,即使设置了适当的环境变量。
- http_proxy = URL
- https_proxy = URL
- ftp_proxy = URL
- no_proxy = string
-
这些启动文件变量允许您覆盖代理设置 由环境指定。
某些代理服务器需要授权才能使用它们。这 授权由用户名和密码组成,必须 由Wget发送。与HTTP授权一样,几个 存在身份验证方案。对于代理授权,当前仅实现身份验证方案。Basic
您可以通过代理 URL 或命令行选项指定用户名和密码。假设 公司的代理位于端口 8001 的 '',a 包含授权数据的代理 URL 位置可能如下所示 这:proxy.company.com
http://hniksic:mypassword@proxy.company.com:8001/
或者,您可以使用“”和 '' 选项,以及等效设置和设置代理 用户名和密码。proxy-userproxy-password.wgetrcproxy_userproxy_password
8.2 分布
像所有 GNU 实用程序一样,最新版本的 Wget 可以在 主 GNU 存档站点 ftp.gnu.org 及其镜像。例如 Wget 1.21.1-dirty 可以在 https://ftp.gnu.org/pub/gnu/wget/wget-1.21.1-dirty.tar.gz
8.3 网站
GNU Wget 的官方网站是 https//www.gnu.org/software/wget/。但是,最有用的是 信息驻留在“Wget Wgiki”,http://wget.addictivecode.org/。
8.4 邮件列表
主列表
用于讨论、错误报告或问题的主要邮件列表 关于GNU Wget在 bug-wget@gnu.org。要订阅,请发送 发送电子邮件至 bug-wget-join@gnu.org,或访问 https://lists.gnu.org/mailman/listinfo/bug-wget。
您无需订阅即可向列表发送消息;然而 请注意,取消订阅的消息是经过审核的,可能需要 而在他们上榜之前——通常是一天左右。如果 您希望您的消息立即显示,请订阅 发布前列出。该名单的档案可在 https://lists.gnu.org/archive/html/bug-wget/ 找到。
NNTP/Usenettish 网关也可通过 Gmane 使用。你可以看到格马内 http://news.gmane.org/gmane.comp.web.wget.general 档案馆。请注意, Gmane 存档方便地包含来自当前 列表,以及上一个。消息也会显示在格马内 存档比 https://lists.gnu.org 更早。
过时列表
以前,邮件列表 wget@sunsite.dk 用作 主讨论列表和另一个列表,wget-patches@sunsite.dk 用于提交和 讨论 GNU Wget 的补丁。
来自 wget@sunsite.dk 的邮件存档于
- https://www.mail-archive.com/wget%40sunsite.dk/ 和在
- http://news.gmane.org/gmane.comp.web.wget.general(这也 继续存档当前列表,bug-wget@gnu.org)。
来自 wget-patches@sunsite.dk 的邮件存档于
8.5 互联网中继聊天
除了邮件列表,我们还设置了一个支持渠道 通过 IRC 在 , .快来看看吧!irc.freenode.org#wget
8.6 报告错误
欢迎您通过 GNU Wget 错误跟踪器(见 https://savannah.gnu.org/bugs/?func=additem&group=wget)或我们的 邮件列表 bug-wget@gnu.org。
访问 https://lists.gnu.org/mailman/listinfo/bug-wget 获取更多信息(如何订阅、列出存档等)。
在实际提交错误报告之前,请尝试遵循一些 简单的准则。
- 请尝试确定您看到的行为确实是一个错误。如果 Wget 崩溃,这是一个错误。如果 Wget 的行为与记录不符, 这是一个错误。如果事情很奇怪,但你不确定方式 它们应该可以工作,这很可能是一个错误,但您可能想要 仔细检查文档和邮件列表(请参阅邮件列表)。
- 尝试在尽可能简单的情况下重复该错误。例如,如果 下载时Wget崩溃,您应该尝试查看崩溃是否 可重复,并且 if 将使用一组更简单的选项发生。你可能会 甚至尝试在发生崩溃的页面上开始下载 查看该页面是否以某种方式触发了崩溃。wget -rl0 -kKE -t5 --no-proxy http://example.com -o /tmp/log
另外,虽然我可能有兴趣了解文件的内容,但可能只是将其转储到调试消息中 一个坏主意。相反,您应该首先尝试查看错误是否重复 随着搬家。仅当事实证明设置会影响错误时,才将 该文件。.wgetrc.wgetrc.wgetrc
- 请使用“”选项启动 Wget 并将结果发送给我们 输出(或其相关部分)。如果 Wget 是在没有的情况下编译的 调试支持,重新编译它 - 跟踪错误要容易得多 启用调试支持。-d
注意:请确保删除任何潜在的敏感信息 在将其发送到错误地址之前,从调试日志中。不会特意收集敏感信息, 但日志将包含 Wget 的相当完整的成绩单 与服务器的通信,其中可能包括密码和片段 下载的数据。由于错误地址已公开存档,因此您 可能假定所有错误报告对公众可见。
-d - 如果 Wget 崩溃了,请尝试在调试器中运行它,例如 并键入以获取回溯。这可能不是 如果系统管理员已禁用核心文件,则可以工作,但它是 可以安全尝试。
gdb `which wget` corewhere
8.7 可移植性
像所有的GNU软件一样,Wget在GNU系统上工作。然而,由于它 使用 GNU Autoconf 进行构建和配置,并且大多避免使用 任何特定Unix的“特殊”功能,它应该编译(和 工作)在所有常见的 Unix 风格上。
各种 Wget 版本已在多种 Unix 系统,包括 GNU/Linux、Solaris、SunOS 4.x、Mac OS X、OSF (又名Digital Unix或Tru64),Ultrix,*BSD,IRIX,AIX等。一些 这些系统不再广泛使用,可能无法 支持最新版本的 Wget。如果 Wget 无法在 系统,我们想知道它。
感谢善良的贡献者,这个版本的Wget编译并工作 在 32 位Microsoft Windows 平台上。它已被编译 成功使用 MS Visual C++ 6.0、Watcom、Borland C 和 GCC 编译 器。当然,它削弱了某些可用的功能 Unix,但它应该可以替代那些坚持使用的人 窗户。请注意,Wget 的 Windows 特定部分不是 保证将来会得到支持,尽管这一直是 实践案例已有多年。所有问题和问题 Windows使用情况应报告给Wget邮件列表,wget@sunsite.dk 维护 与Windows相关的功能可能会查看它们。
通过DJGPP支持在MS-DOS上进行构建由Gisle提供 瓦纳姆;VMS的端口由Steven Schweda维护,并且可用 在 https://antinode.info/dec/sw/wget.html。
8.8 信号
由于 Wget 的目的是后台工作,因此它抓住了挂断 信号 () 并忽略它。如果输出为标准输出 输出,它将被重定向到名为 . 否则,将被忽略。当您愿意时,这很方便 以在启动 Wget 后重定向其输出。SIGHUPwget-logSIGHUP
$ wget http://www.gnus.org/dist/gnus.tar.gz & ... $ kill -HUP %% SIGHUP received, redirecting output to `wget-log'.
除此之外,Wget 不会试图以任何方式干扰信号。,并且应该杀死它。C-ckill -TERMkill -KILL
概念索引
| 跳转到: | # . A B C D E F G H I K L M N O P Q R S T U V W X |
|---|
| 跳转到: | # . A B C D E F G H I K L M N O P Q R S T U V W X |
|---|