包含 15 个很棒的示例的终极 Wget 下载指南

网友投稿 1560 2022-05-30

wget实用程序是从 Internet 下载文件的最佳选择。wget 几乎可以处理所有复杂的下载情况,包括大文件下载、递归下载、非交互式下载、多文件下载等,


在本文中,让我们使用 15 个很棒的 wget 示例来回顾如何将wget用于各种下载场景。

1. 使用 wget 下载单个文件

以下示例从 Internet 下载单个文件并存储在当前目录中。

$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

下载时,它会显示一个进度条,其中包含以下信息:

下载完成百分比(例如 31% 如下所示)

到目前为止下载的总字节数(例如 1,213,592 字节,如下所示)

当前下载速度(例如 68.2K/s 如下图)

剩余下载时间(例如 eta 34 秒,如下所示)

正在下载:

$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2 保存到:`strx25-0.9.2.1.tar.bz2.1' 31% [==================> 1,213,592 68.2K/s eta 34s

下载完成:

$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2 Saving to: `strx25-0.9.2.1.tar.bz2' 100%[======================>] 3,852,374 76.8K/s in 55s 2009-09-25 11:15:30 (68.7 KB/s) - `strx25-0.9.2.1.tar.bz2' saved [3852374/3852374]

2. 使用 wget -O 下载并使用不同的文件名存储

默认情况下,wget 将从最后一个正斜杠之后的最后一个单词中选择文件名,这可能并不总是合适的。

错误:以下示例将下载并存储名称为:download_script.php?src_id=7701 的文件

$ wget http://www.vim.org/scripts/download_script.php?src_id=7701

即使下载的文件是 zip 格式,它也会存储在文件中,如下所示。

$ls download_script.php?src_id=7701

正确:要更正此问题,我们可以使用 -O 选项将输出文件名指定为:

$ wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701

3. 使用 wget –limit-rate 指定下载速度/下载速率

在执行 wget 时,默认情况下它会尝试占用全部可能的带宽。当您在生产服务器上下载大文件时,这可能是不可接受的。因此,为了避免这种情况,我们可以使用 –limit-rate 来限制下载速度,如下所示。

在下面的例子中,下载速度限制为 200k

$ wget --limit-rate=200k http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

4. 使用 wget -c 继续不完整的下载

使用 wget -c 选项重新启动中途停止的下载,如下所示。

$ wget -c http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

当您启动一个非常大的文件下载但在中间中断时,这非常有用。您可以使用选项 -c 从中断的位置开始下载,而不是再次开始整个下载

注意:如果下载在中途停止,当您在没有选项 -c 的情况下再次重新启动下载时,wget 将自动将 .1 附加到文件名,因为以前名称的文件已经存在。如果 .1 的文件已经存在,它会在最后下载 .2 的文件。

5. 使用 wget -b 在后台下载

对于大量下载,请使用 wget 选项 -b 将下载置于后台,如下所示。

$ wget -b http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2 Continuing in background, pid 1984. Output will be written to `wget-log'.

它将启动下载并将 shell 提示返回给您。您始终可以使用 tail -f 检查下载状态,如下所示。

$ tail -f wget-log Saving to: `strx25-0.9.2.1.tar.bz2.4' 0K .......... .......... .......... .......... .......... 1% 65.5K 57s 50K .......... .......... .......... .......... .......... 2% 85.9K 49s 100K .......... .......... .......... .......... .......... 3% 83.3K 47s 150K .......... .......... .......... .......... .......... 5% 86.6K 45s 200K .......... .......... .......... .......... .......... 6% 33.9K 56s 250K .......... .......... .......... .......... .......... 7% 182M 46s 300K .......... .......... .......... .......... .......... 9% 57.9K 47s

此外,请务必查看我们之前关于如何有效使用 tail 命令查看多个文件的多尾文章。

6. 使用 wget –user-agent 屏蔽用户代理并像浏览器一样显示 wget

某些网站可以通过识别用户代理不是浏览器来禁止您下载其页面。因此,您可以使用 –user-agent 选项屏蔽用户代理,并像浏览器一样显示 wget,如下所示。

$ wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" URL-TO-DOWNLOAD

7. 使用 wget –spider 测试下载 URL

当您要进行预定下载时,您应该检查下载是否会在预定时间正常进行。为此,请完全从计划中复制该行,然后添加 –spider 选项进行检查。

$ wget --spider -

如果给出的 URL 是正确的,它会说

$ wget --spider download-url Spider mode enabled. Check if remote file exists. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Remote file exists and could contain further links, but recursion is disabled -- not retrieving.

这样可以确保下载将在预定的时间成功。但是当您提供错误的 URL 时,您将收到以下错误。

$ wget --spider download-url Spider mode enabled. Check if remote file exists. HTTP request sent, awaiting response... 404 Not Found Remote file does not exist -- broken link!!!

您可以在以下情况下使用蜘蛛选项:

在安排下载之前检查。

以特定时间间隔监控网站是否可用。

检查书签中的页面列表,并找出哪些页面仍然存在。

8. 使用 wget –tries 增加重试尝试的总数

如果互联网连接有问题,并且下载文件很大,则下载可能会失败。默认情况下 wget 重试 20 次以使下载成功。

如果需要,您可以使用 –tries 选项增加重试次数,如下所示。

$ wget --tries=75 DOWNLOAD-URL

9. 使用 Wget -i 下载多个文件 / URL

首先,将所有下载文件或 URL 存储在一个文本文件中:

$ cat > download-file-list.txt URL1 URL2 URL3 URL4

接下来,使用 -i 选项将 download-file-list.txt 作为参数提供给 wget,如下所示。

$ wget -i download-filelist.txt

10. 使用 wget –mirror 下载完整的网站

以下是当您要下载完整网站并可供本地查看时要执行的命令行。

包含 15 个很棒的示例的终极 Wget 下载指南

$ wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL

–mirror : 打开适合镜像的选项。

-p :下载正确显示给定 HTML 页面所需的所有文件。

--convert-links : 下载后,将文档中的链接转换为本地查看。

-P ./LOCAL-DIR :将所有文件和目录保存到指定目录。

11. 使用 wget –reject 在下载时拒绝某些文件类型

您找到了一个有用的网站,但不想下载图片,您可以指定以下内容。

$ wget --reject=gif 要下载的网站

12. 使用 wget -o 将消息记录到日志文件而不是 stderr

当您希望将日志重定向到日志文件而不是终端时。

$ wget -o download.log -

13. 使用 wget -Q 超过一定大小时退出下载

如果您想在超过 5 MB 时停止下载,您可以使用以下 wget 命令行。

$ wget -Q5m -i FILE-WHICH-HAS-URLS

注意:当您下载单个 URL 时,此配额不会生效。这与配额大小无关,当您指定单个文件时,所有内容都会被下载。此配额仅适用于递归下载。

14. 使用 wget -r -A 仅下载某些文件类型

您可以在以下情况下使用它:

从网站下载所有图像

从网站下载所有视频

从网站下载所有 PDF 文件

$ wget -r -A.pdf http://url-to-webpage-with-pdfs/

15. 使用 wget 进行 FTP 下载

您可以使用 wget 执行 FTP 下载,如下所示。

使用 Wget 进行匿名 FTP 下载

$ wget ftp-url

使用带有用户名和密码验证的 wget 进行 FTP 下载。

$ wget --ftp-user=USERNAME --ftp-password=PASSWORD DOWNLOAD-URL

FTP Linux 网站

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【PyTorch基础教程12】图像多分类问题(学不会来打我啊)
下一篇:EXCEL表格中的人口数据如何转换成饼形图
相关文章