返回介绍

Hack-27 Wget 下载器

发布于 2025-03-08 17:38:22 字数 4721 浏览 0 评论 0 收藏 0

Wget 下载器

wget 是 Linux 标配的下载器,虽然作者说他是 Linux 上最好的选择,但是还有 aria2 这个多线程下载神器,个人感觉要比 wget 好。

在这里,作者介绍了 15 个 wget 的应用。

1. 下载单一文件

wget "http://url.com/file"

很简单 :)

2. 将下载的文件重命名

wget "http://url.com/file" -O rename

-O 的选项,使得下载的文件被重命名了.这个开关很有用,因为 wget 默认下载的文件是根据 URL 来命名的,如果 URL 中有很多参数,那么你下载的文件就会是个乱七八糟的名字,最常见的是下载百度云...(百度云不开会员就限速!)

3. 下载限速

我们可以用 --limit-rate 这个选项来限制 wget 的下载速度,比如:

wget --limit-rate=200k "http://url.com/file.tar.bz2"

就会限制下载速度到 200KB/s

4. 继续下载

这个功能也很常用,比如,正下载到一半断网了,或者网络中断,那么就可以用 -c 的开关来定义继续下载, continue 嘛!

需要注意的是,如果不加这个开关,那么就会重新下载一个新的文件,并且如果当前目录下有重名的文件,会在重名文件的后缀名上加一个 .1 , 如果有 .1 了,就会加个 .2 , 所以这个 -c 的开关很重要呢!

wget -c "http://url.com/file.tar.bz2"

5. 后台下载

这个也很有用,甬道的开关是 -b - background

如果开启了这个开关的话,就不会有任何输出,但是记录还是要有的,默认是在当前目录下创建一个 wget-log 的文件,若你需要指定记录文件的名字呢,就需要用到 -o 这个选项了,后面接要保存的文件名,注意了,这里是小写的 o 哦!

wget -b "http://url.com/downloads.tar" -o downloads.log -O download_file"

6. 指定下载的 User Agent

--user-agent 这个选项可以手动指定我们的 user-agent ,这在目标服务器限制 User Agent 的时候很有用。

wget --user-agent="I'm not Wget.." "http://url.com/downloads.tar"

7. 测试目标文件

我们拿到一个下载地址之后就直接开始下载嘛? 一般情况下是的,但是不排除我们只想看一下目标文件是什么,类型啦,大小啦,甚至目标文件是否真的存在(返回代码是什么).

这个时候就要用到另一个选项 --spider , 没错,就是蜘蛛,先让蜘蛛去爬一下,看看我们要下载的文件成色如何。

➤ wget --spider "localhost/user.zip" -O /dev/null
Spider mode enabled. Check if remote file exists.
--2016-01-03 20:21:11--  http://localhost/user.zip
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3463466 (3.3M) [application/zip]
Remote file exists.

➤

上面的就是我们的蜘蛛给我们返回的内容,比较详细呢!

在看一个错误的(404):

➤ wget --spider rabbit/index.html
Spider mode enabled. Check if remote file exists.
--2016-01-03 20:15:48--  http://rabbit/index.html
Resolving rabbit (rabbit)... 127.0.0.1, 127.0.1.1
Connecting to rabbit (rabbit)|127.0.0.1|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
Remote file does not exist -- broken link!!!

➤

然后服务器端的日志为:

127.0.0.1 - - [03/Jan/2016:20:15:48 +0800] "HEAD /index.html HTTP/1.1" 404 0 "-" "Wget/1.16.1 (linux-gnu)"

看到了吗, spider 实质上是向服务器发送了一个 HEAD 请求. 以此查看目标文件的信息。

这样做的用途,作者也给了示例,感觉最有用的还是检查书签,检查一下你收藏栏里的网址是否还健在。

8. 设定重试次数

有时候网络不好,下载经常重试,所以就需要设定 retry 的次数,可以用 –tries 这个选项来定义:

wget --tries=75 "http://url.com/file.tar.bz2"

9. 批量下载(从文件导入下载链接)

这个功能实际上是从一个文件读取下载链接,然后慢慢下载...

比如,有个 url.txt 里面存放着很多下载地址,那么就可以用 -i 这个参数来定义:

wget -i url.txt

在此安利一波我的杂货仓: http//ipv6.kfd.me 仅限 IPv6 地址访问。

10. 下载整个网站(爬爬爬)

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

这个... 先一一介绍参数吧:

  • --mirror 打开'镜像储存'开关 因为我们是复制整个网站嘛
  • -p 下载所有相关文件 为了展示 HTML 页面所必须的文件,css,js,img 啥的
  • –convert-links 下载完成之后,把原始链接转换成相对连接(根据本地环境)
  • -P ./LOCAL-DIR 保存到指定的目录下

这个例子实际上就是爬站... 或者说,窃。

11. 拒绝下载某种文件

再上面的例子中,如果你不想下载某种特定类型的文件,就可以用 --reject 参数来指定要拒绝的文件类型,比如 --reject=gif 就拒绝下载 gif 文件。

12. 保存下载日志

上面(第五点) 我已经提过了,在此不再赘述,

参数为 -o 小写。

13. 超过设定大小后自动退出

如果你想让下载的文件不超过 20M, 就可以指定 -Q 的参数,如果超过多少兆之后,就退出下载。

wget -Q5m -i url.txt

这个参数生效的条件是, url 必须都要从文件中读取。

14. 仅下载特定类型的文件

用途:

  • 下载某个网站上的所有图片
  • 下载某个网站上的所有视频
  • 下载某个网站上的所有 PDF 文件
wget -r -A.pdf "http://url-to-webpage-with-pdfs.com/"

-r 表示递归下载,默认深度为 5.

15. FTP 登陆下载

wget --ftp-user=USERNAME --ftp-password=PASSWORD "DOWNLOAD.com"

wget 作为一个优秀的下载软件,功能强大到难以想象,想知道更多? 问一下 man 吧!

本书简介:

  • Linux 进阶技巧
  • 巧妙的命令组合
  • Bash 某些技巧
  • 一共一百零一个(包括充数的)
  • 最后有个奖励章(额外技巧)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文