Linux 实用命令行 Wget 用法示例

15 Practical Examples to Download Images and Videos from Internet

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

wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。"wget" 这个名称来源于 “World Wide Web” 与 “get” 的结合。

所谓自动下载,是指 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
Saving to: `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 DOWNLOAD-URL

如果给出的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 FoundRemote 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-file-list.txt

10、使用wget -mirror下载完整的网站

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

$ wget --mirror -p --convert-links -P 指定目录 下载地址

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

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

–convert-links:在下载之后,转换文档中的链接以进行本地查看。

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

11、使用wget -reject下载时拒绝某些文件类型

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

$ wget --reject=gif WEBSITE-TO-BE-DOWNLOADED

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

当你想把日志重定向到日志文件而不是终端。

$ wget -o download.log DOWNLOAD-URL

13、使用wget -Q超过一定的大小时退出

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

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

注意:当您下载单个网址时,这个配额不会生效。 这与您指定单个文件时所有将下载的配额大小无关。 这个配额只适用于递归下载。

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

你可以在下面的情况下使用它:

  • 从网站下载所有图像

  • 从网站下载所有视频

  • 从网站下载所有的PDF文件

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

15、使用wget下载FTP

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

匿名FTP下载使用Wget

$ wget ftp-url

使用用户名和密码认证的wget使用FTP下载。

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


未经允许请勿转载:程序喵 » Linux 实用命令行 Wget 用法示例

点  赞 (0) 打  赏
分享到: