wget 是一个基于命令行的网络下载工具,具有以下特性:
(1)支持断点下传功能
(2)同时支持FTP和HTTP下载方式
(3)支持代理服务器
(4)设置方便简单
(5)程序小,完全免费
wget虽然功能强大,但是使用起来还是比较简单的,基本的语法是:wget [参数列表] URL。下面就结合具体的例子来说明一下wget的用法。
1、下载整个http或者ftp站点。
wget http://place.your.url/here
这个命令可以将http://place.your.url/here 首页下载下来。使用
-x 会强制建立服务器上一模一样的目录,如果使用
-nd 参数,那么服务器上下载的所有内容都会加到本地当前目录, 而不会新建目录
wget -r http://place.your.url/here
这个命令会按照递归的方法,下载服务器上所有的目录和文件,实质就是下载整个网站。这个命令一定要小心使用,因为在下载的时候,被下载网站指向的所有地址同样会被下载,因此,如果这个网站引用了其他网站,那么被引用的网站也会被下载下来!基于这个原因,这个参数不常用。可以用
-l number 参数来指定下载的层次。例如只下载两层,那么使用-l 2。
要是您想制作镜像站点,那么可以使用
-m 参数,例如:wget -m http://place.your.url/here
这时wget会自动判断合适的参数来制作镜像站点。此时,wget会登录到服务器上,读入robots.txt并按robots.txt的规定来执行。
2、断点续传。
当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完,连接就已经被切断,此时就需要断点续传。wget的断点续传是自动的,只需要使用
-c 参数,例如:
wget -c http://the.url.of/incomplete/file
使用断点续传要求服务器支持断点续传。
-t 参数表示重试次数,例如需要重试100次,那么就写-t 100,如果设成-t 0,那么表示无穷次重试,直到连接成功。
-T 参数表示超时等待时间,例如 -T 120,表示等待120秒连接不上就算超时。
3、批量下载。
如果有多个文件需要下载,那么可以生成一个文件,把每个文件的URL写一行,例如生成文件 download.txt,然后用命令:
wget -i download.txt
这样就会把download.txt里面列出的每个URL都下载下来。(如果列的是文件就下载文件,如果列的是网站,那么下载首页)
4、选择性的下载。
可以指定让wget只下载一类文件,或者不下载什么文件。例如:
wget -m –reject=gif http://target.web.site/subdirectory
表示下载http://target.web.site/subdirectory,但是忽略gif文件。
–accept=LIST 可以接受的文件类型,
–reject=LIST拒绝接受的文件类型。
5、密码和认证。
wget只能处理利用用户名/密码方式限制访问的网站,可以利用两个参数:
–http-user=USER设置HTTP用户
–http-passwd=PASS设置HTTP密码
对于需要证书做认证的网站,就只能利用其他下载工具了,例如
curl。
6、利用代理服务器进行下载。
如果用户的网络需要经过代理服务器,那么可以让wget通过代理服务器进行文件的下载。此时
需要在当前用户的主目录下创建一个.wgetrc文件。文件中可以设置代理服务器:
http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080
可以通过wget的命令行参数指定代理服务器的用户名和密码:
–proxy-user=USER设置代理用户
–proxy-passwd=PASS设置代理密码
使用参数
–proxy=on/off 使用或者关闭代理。
wget还有很多有用的功能,需要用户去挖掘。
附录:
命令格式:
wget [参数列表] [目标软件、网页的网址]
-V,–version 显示软件版本号然后退出;
-h,–help 显示软件帮助信息;
-e,–execute=COMMAND 作为 “.wgetrc”的形式执行该命令,该命令会在.wgetrc中命令执行完后执行,此选项通常用于覆盖".wgetrc"中的设置。你可以指定多个-e 选项
-o, --output-file=FILE 将软件输出信息保存到文件;
-a, --append-output=FILE 将软件输出信息追加到文件;
-d,–debug 显示输出信息;
-q,–quiet 不显示输出信息;
-i,–input-file=FILE 从文件中取得URL;
-t --tries=NUMBER 是否下载次数(0表示无穷次)
-O, --output-document=FILE 下载文件保存为别的文件名
-nc,--no-clobber 不要覆盖已经存在的文件
-N,–timestamping 只下载比本地新的文件
-T,–timeout=SECONDS 设置超时时间
-Y,–proxy=on/off 关闭代理
-w 两次尝试之间等待多少秒,比如”-w 100″表示两次尝试 之间等待100秒;
-nd,–no-directories 不建立目录
-x,–force-directories 强制建立目录
–http-user=USER 设置HTTP用户
–http-passwd=PASS 设置HTTP密码
–proxy-user=USER 设置代理用户
–proxy-passwd=PASS 设置代理密码
-r, --recursive 载整个网站、目录(小心使用)
-l,--evel=NUMBER 下载层次
-A,–accept=LIST 可以接受的文件类型
-R,–reject=LIST 拒绝接受的文件类型
-D,–domains=LIST 可以接受的域名
–exclude-domains=LIST 拒绝的域名
-L,–relative 下载关联链接
–follow-ftp 只下载FTP链接
-H,–span-hosts 可以下载外面的主机
-I,–include-directories=LIST 允许的目录
-X,–exclude-directories=LIST 拒绝的目录
-b 让wget在后台运行,记录文件写在当前目录下”wget-log”文件中;
-Q 限制下载文件的总大小,比如”-Q2k”表示不能超过2K 字节,”-Q3m”表示最多不能超过3M字节,如果数字后面什么都不加,就表示是以字节为单 位,比如”-Q200″表示最多不能超过200字节
-nd 不下载目录结构,把从服务器所有指定目录下载的文件都堆到当前目录里;
-x 与 -nd 设置刚好相反,创建完整的目录结构,例如”wget -nd http://www.gnu.org“将创建在当前目录下创建”www.gnu.org“子目录,然后按照服务器 实际的目录结构一级一级建下去,直到所有的文件都传完为止;
-nH 不创建以目标主机域名为目录名的目录,将目标主机的目录结构直接下到当前目 录下;
-l 下载远程服务器目录结构的深度,例如”-l 5″下载目录深度小于或者等 于5以内的目录结构或者文件
-m 做站点镜像时的选项,如果你想做一个站点的镜像,使用这个选项,它将自动设 定其他合适的选项以便于站点镜像;
-np 下载目标站点指定目录及其子目录的内容。这也是一个非常有用的选项,我们 假设某个人的个人主页里面有一个指向这个站点其他人个人主页的连接,而我们只想下载 这个人的个人主页,如果不设置这个选项,甚至–有可能把整个站点给抓下来,