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
吧!