包含 15 个很棒的示例的终极 Wget 下载指南
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 下载完整的网站
以下是当您要下载完整网站并可供本地查看时要执行的命令行。
$ 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
- 点赞
- 收藏
- 关注作者
评论(0)