跳转至内容

Wget

来自 ArchWiki

GNU Wget 是一个自由软件软件包,用于通过 HTTP、HTTPS、FTP 和 FTPS (FTPS 自 1.18 版本起支持) 检索文件。它是一个非交互式的命令行工具,因此可以很容易地在脚本中调用。

安装

wget 1.x

安装 wget 软件包。git 版本存在于 AUR 中,名称为 wget-gitAUR

wget2

wget2 是一个命令行语法几乎相同的替代方案,它是:“GNU Wget 的继任者”并且是“从零开始设计和编写的”。这次重写“支持多线程运行并使用许多特性以实现快速操作。在许多情况下,由于 HTTP2、HTTP 压缩、并行连接以及使用 If-Modified-Since HTTP 标头,Wget2 的下载速度比 Wget 1.x 快得多。” [1]

为了使用 wget2,请从 AUR 安装 wget2AUR。请注意,这有一个对 pandoc 的构建依赖(makedepend),而 pandoc 的依赖非常繁重;作为替代,您可以 安装同样在 AUR 中的 wget2-no-docsAUR 以避免此构建依赖。

配置

配置在 /etc/wgetrc 中进行。默认配置文件不仅文档齐全,而且很少需要对其进行修改。有关更复杂的选项,请参阅 wget(1) § OPTIONS

FTP 自动化

通常,SSH 被用于在网络之间安全地传输文件。然而,与通过 SSH 进行 scp 和 rsyncing 相比,FTP 对资源的占用更轻。FTP 虽然不安全,但在防火墙保护的环境中且在 CPU 受限的系统上传输大量数据时,使用 FTP 可能会非常有益。

wget ftp://root:somepassword@10.13.X.Y//ifs/home/test/big/"*.tar"

3,562,035,200 74.4M/s   in 47s

在这种情况下,Wget 以 74.4MB/秒的速度传输了一个 3.3 GiB 的文件。

简而言之,该过程具有以下特点:

代理

Wget 使用标准的代理环境变量。请参阅 代理设置

要使用代理身份验证功能

$ wget --proxy-user "DOMAIN\USER" --proxy-password "PASSWORD" URL

不涵盖使用 HTML 身份验证表单的代理。

pacman 集成

若要让 pacman 自动使用 Wget 和带身份验证的代理,请将 Wget 命令放入 /etc/pacman.conf[options] 部分

XferCommand = /usr/bin/wget --proxy-user "domain\user" --proxy-password="password" --passive-ftp --quiet --show-progress --continue --output-document=%o %u
警告 请注意,以明文形式存储密码是不安全的。请确保只有 root 用户可以读取此文件,执行 chmod 600 /etc/pacman.conf

用法

本节解释了 Wget 的一些使用场景。

基本用法

Wget 最基础且最常见的用途之一是从互联网下载文件。

$ wget <url>

当你已经知道要下载文件的 URL 时,这比通常的在浏览器中下载并手动将其移动到正确目录的流程要快得多。毋庸置疑,仅从最简单的用法中,你可能就能发现几种将其用于自动化下载的方法(如果你有此需求的话)。

备份完整网站

Wget 可以备份整个网站,同时通过将绝对链接更改为相对链接来保留正确的链接目标。

$ wget --recursive --no-parent --convert-links 'target-url-here'

对于动态网站,提供了一个将网站转换为静态 HTML 的额外选项。

$ wget --recursive --no-parent --page-requisites --adjust-extension --convert-links --backup-converted 'target-url-here'

wget 还提供了绕过下载限制机制的选项。

$ wget --recursive --no-parent --convert-links --random-wait --execute robots=off --user-agent "Mozilla/5.0" 'target-url-here'

如果下载需要包含第三方内容,可以使用 -H/--span-hosts 开关配合 -r/--recursive 来递归访问链接的主机。

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.