1 wget具备的功能有:
(1)支持断点下传功能
(2)同时支持FTP和HTTP下载方式
(3)支持代理服务器
(4)设置方便简单
(5)程序小,完全免费
2 wget用法:
wget虽然功能强大,但是使用起来还是比较简单的,基本的语法是:
wget [参数列表] URL地址
下面就结合具体的例子来说明一下wget的用法:
2.1 下载整个http或者ftp站点:
wget http://example.com/url
这个命令可以将http://example.your.url/here 首页下载下来。使用-x会强制建立服务器上一模一样的目录,如果使用-nd参数,那么服务器上下载的所有内容都会加到本地的当前目录
wget -r http://example.com/url
这个命令会按照递归的方法,下载服务器上所有的目录和文件,实质就是下载整个网站。这个命令一定要小心使用,因为在下载的时候,被下载网站指向的所有地址 同样会被下载,因此,如果这个网站引用了其他网站,那么被引用的网站也会被下载下来!基于这个原因,这个参数不常用。可以用-l number参数来指定下载的层次。例如只下载两层,那么使用-l 2
wget -m http://example.com/url
如果想要制作镜像,那你可以使用-m参数,wget会自动判断合适的参数来制作镜像站点。此时,wget会登录到服务器上,读入robots.txt并按robots.txt的规定来执行
2.2 断点续传
当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完,连接就已经被切断,此时就需要断点续传。wget的断点续传是自动的,只需要使用-c参数:
wget -c http://example.com/url
使用断点续传要求服务器支持断点续传。-t参数表示重试次数,例如需要重试100次,那么就写-t 100,如果设成-t 0,那么表示无穷次重试,直到连接成功。-T参数表示超时等待时间,例如-T 120,表示等待120秒连接不上就算超时
2.3 批量下载
如果有多个文件需要下载,那么可以生成一个文件,把每个文件的URL写一行,例如:
[root@localhost ~]#vim download.txt
http://url_1
http://url_2
https://url_3
https://url_4
……
[root@localhost ~]#wget -i download.txt
这样就会把download.txt里面列出的每个URL都下载下来,如果列的是文件就下载文件;如果列的是网站,那么就会下载首页
2.4 选择性的下载
可以指定让wget只下载一类文件,或者不下载什么文件
wget -m –reject=png https://www.liuzehe.top/upload/……
以上命令表示下载https://www.liuzehe.top/upload/……下的文件,但是忽略png类型的文件
- –accept=Type 可以接受的文件类型
- –reject=Type 拒绝接受的文件类型
2.5 密码和认证
如果使用wget下载只能使用用户名/密码方式限制访问的网站,那么可以利用两个参数:
- –http-user=USER设置HTTP用户
- –http-passwd=PASS设置HTTP密码
对于需要证书做认证的网站,就只能利用其他下载工具了,例如curl
2.6 利用代理服务器进行下载
如果用户的网络需要经过代理服务器,那么可以让wget通过代理服务器进行文件的下载。此时需要在当前用户的目录下创建一个.wgetrc文件来读取自定义设置。文件中可以设置代理服务器:
http-proxy = 1.2.3.4:80 #表示http代理服务器的IP和端口
ftp-proxy = 1.2.3.4:80 #表示ftp代理服务器的IP和端口
use_proxy = on #表示使用代理服务器下载,off为关闭
如果代理服务器需要密码则命令如下:
wget –proxy-user=USER –proxy-passwd=PASSWORD URL
这样就讲URL理的文件下载到代理服务器上了。如果不想创建这个文件,也可以直接使用-e选项指定
wget -–proxy=on -e http-proxy = 1.2.3.4:80 –proxy-user=USER –proxy-passwd=PASSWORD URL
2.7 wget一些常用选项介绍:
-V #version 显示软件版本号然后退出
-h #help 显示软件帮助信息
-e #execute=COMMAND 相当于执行一个 “.wgetrc”里的命令
-o #output-file=FILE 将软件输出信息保存到文件FILE里
-a #append-output=FILE 将软件输出信息追加到文件FILE里
-b #让wget在后台运行,记录文件写在当前目录下”wget-log”文件中
-d #debug 显示输出信息
-q #quiet 不显示输出信息
-i #input-file=FILE 从FILE文件中取得URL
-t #tries=NUMBER 重试下载次数(0表示无穷次)
-O #output-document=FILE 下载文件保存为别的文件名
-nc #no-clobber 不要覆盖已经存在的文件
-np #只下载目标站点指定目录及其子目录的内容
-N #timestamping 只下载比本地存在的文件新的文件
-T #timeout=SECONDS 设置超时时间
-w #[number of seconds]:在两次尝试之间等待多少秒,比如“-w 100”表示两次尝试之间等待100秒
-Y #proxy=on/off 关闭代理
-nd #no-directories 不建立目录
-x #force-directories 强制建立目录
–http-user=USER #设置HTTP访问登录用户
–http-passwd=PASS #设置HTTP访问密码
–proxy-user=USER #设置代理服务器登录用户
–proxy-passwd=PASS #设置代理服务器密码
-r #recursive 下载整个网站、目录(小心使用)
-l #level=NUMBER 下载层次
-A #accept=Type 可以接受的文件类型
-R #reject=Type 拒绝接受的文件类型
-D #domains=example.com 可以接受的域名为example.com
–exclude-domains=LIST #拒绝域名为LIST提供的文件
-L #relative 下载关联链接
–follow-ftp #只下载FTP链接
-H #span-hosts 可以下载外面的主机
-nH #不创建以目标主机域名为目录名的目录,将目标主机的目录结构直接下到当前目录下
-I #include-directories=LIST 允许的目录
-X #exclude-directories=LIST 拒绝的目录
-Q #[byetes]:限制下载文件的总大小最多不能超过多少,比如“-Q 2k”表示不能超过2K字节,“-Q 3m”表示最多不能超过3M字节,如果数字后面什么都不加,缺省是以字节为单位,比如“-Q 200”表示最多不能超过200字节
wget还有很多有用的功能,大家可以去挖掘……
Q.E.D.