名称


wget - 非交互式网络下载工具



总览


wget [选项]… [URL]…



描述


GNU Wget是一个用于在Web上下载文件的非交互式免费工具,支持HTTP,HTTPS和FTP协议,以及HTTP代理的方式。 Wget是非交互的,也意味着它可以在后台运行,而不用用户保持登录状态,不像用网络浏览器那样。



选项


启动:


-V, --version 显示 Wget 的版本并且退出。


-h, --help 打印帮助选项。


-b, -background 启动后进入后台操作。


-e, -execute=COMMAND 运行‘.wgetrc’形式的命令,.wgetrc是用户使用wget的一个初始化配置命令参数的文件。



日志记录及输入文件:


-o, --output-file=文件 将日志消息写入到指定文件中(如果指定文件之前有内容,则会被清空)。


-a, --append-output=文件 将日志消息追加到指定文件的末端(如果指定文件之前有内容,不会被清空)。


-d, --debug 打印调试输出(如果没有调试信息输出,则说明此命令安装时没有编译支持debug模式)。


-q, --quiet 安静模式(不输出信息)。


-v, --verbose 详细输出模式(默认)。


-nv, --non-verbose 关闭详细输出模式,但不进入安静模式。


-i, --input-file=文件 下载从指定文件中找到的 URL;如果同时指定命令行和文件,则先读取命令行再读取文件;--force-html这个参数如果没被指定,则文件中的URL一行一个。


-F, --force-html 以 HTML 方式处理输入文件;可以让你从HTML文件中读取链接URL,但是得添加 "<base href=" url ">" 到HTML文件里面,或者使用--base=URL的方式来设置基本URL。


-B, --base=URL 使用 -F -i 文件选项时,在相对链接前添加指定的 URL,这样可以处理那些相对路径的url;比如说设置--base='http://foo/bar/a.html',则在HTML文件里面遇到'../baz/b.html'这种情况的时候,它将会被解析成 'http://foo/baz/b.html'。



下载:


--bind-address=ip地址 使用本机的指定地址 (主机名称或 IP) 进行连接。(一般用在多ip的情况下)


-t, --tries=次数 配置重试次数(0 表示无限,默认重试20次,当遇到connection refused或者"not found" (404)时不再重试)。


--retry-connrefused 即使拒绝连接也重试。


-O --output-document=文件 将数据写入此文件中。


-nc, --no-clobber 比如说重复下载一个链接到本地,此选项代表不更改已经存在的文件,也不会使用在文件名后添加 .#(# 为数字)的方法写入新的文件。


-c, --continue 继续接收已下载了一部分的文件。


--progress=方式 选择下载进度条的表示方式。


-N, --timestamping 除非远程文件较新,否则不再取回。


-S, --server-response 显示HTTP或者FTP服务器头部回应消息。


--spider 不下载任何数据,此项作用行为像网络蜘蛛一样。


-T, --timeout=秒数 配置读取数据的超时时间 (秒数)。


-w, --wait=秒数 设置接收不同文件之间等待的秒数,推荐使用,可以减轻服务器的负载。


--waitretry=秒数 在失败下载后每次重试之间稍等一段时间 (由 1 秒至指定的 秒数不等)。


--random-wait 接收不同文件之间稍等一段时间(由 0 秒至 2*WAIT 秒不等)。


-Q, --quota=大小 配置接收数据的限额大小,这种限额限制对单个文件是没有影响的,比如说wget -Q10k ftp://wuarchive.wustl.edu/ls-lR.gz,那么无论 ls-lR.gz多大,都会被完全下载下来;一般用在递归下载或者从指定文件中下载。


--limit-rate=速率 限制下载的速率。


--dns-cache=off 禁止查找存于高速缓存中的 DNS。


--restrict-file-names=值 限制文件名中的字符为指定的 OS (操作系统) 所允许的字符,可被接收的值为unix, windows, nocontrol, ascii, lowercase, uppercase。


--user=用户名


--password=密码  为访问FTP或者HTTP指定用户名和密码,在访问FTP的情况下,可以被--ftp-user 和 --ftp-password选项覆盖,在访问HTTP的情况下,可以被--http-user 和 --http-password的选项覆盖


-4, --inet4-only 只支持IPV4


-6, --inet6-only 只支持IPV6


--no-iri 关闭internationalized URI ( IRI )的支持,--iri是打开internationalized URI ( IRI )的支持,默认是打开的



目录:


-nd --no-directories 不创建目录层次,当遇到递归下载的时候,所有的文件都保存在当前目录下。


-x, --force-directories 强制创建目录层次,即使有的不应该被创建,比如 wget -x http://fly.srk.fer.hr/robots.txt,将会被保存下载到fly.srk.fer.hr/robots.txt。


-nH, --no-host-directories 不创建含有远程主机名称的目录,比如说wget -r http://fly.srk.fer.hr/,将会创建一个目录以fly.srk.fer.hr/开始的目录,使用此选项则取消这种实现。


--protocol-directories 使用此选项wget -r http://host --protocol-directories,则在本地创建 http/host/这样的目录类型。


-P, --directory-prefix=名称 保存文件前先创建指定名称的目录。


--cut-dirs=数目 忽略远程目录中指定数目的目录层。


例子:


No options        -> ftp.xemacs.org/pub/xemacs/

-nH               -> pub/xemacs/

-nH --cut-dirs=1  -> xemacs/

-nH --cut-dirs=2  -> .


--cut-dirs=1      -> ftp.xemacs.org/xemacs/




HTTP 选项:


--default-page=文件名 选择一个做为默认的文件名,当遇到/结尾的时候,来设置保存数据到本地文件名。


-E --adjust-extension 这种选项可以在下载http://site.com/article.cgi?25这类URL是,下载到本地文件名变成article.cgi?25.html,wget 1.2版本之前为--html-extension(将所有 MIME 类型为 text/html 的文件都加上 .html 扩展文件名。)


--http-user=用户 配置 http 用户名。


--http-passwd=密码 配置 http 用户密码。


--no-http-keep-alive 禁用 HTTP keep-alive(持久性连接)。


--no-cache  禁用服务端缓存,这种情况下wget会在下载文件时发送Pragma: no-cache这样的指令给服务端


--no-cookies  禁用cookies机制


--load-cookies cookie文件   会话开始前由指定文件载入 cookie。


--save-cookies 文件   会话结束后将 cookie 保存至指定文件。


--ignore-length 忽略“Content-Length”文件头字段。


--header=字符串 在文件头中添加指定字符串。

比如:wget --header='Accept-Charset: iso-8859-2' \

     --header='Accept-Language: hr'        \

       http://fly.srk.fer.hr/


--max-redirect=数字 最大重定向的次数,默认20


--proxy-user=用户 配置代理服务器用户名。


--proxy-passwd=密码 配置代理服务器用户密码。


--referer=URL 在 HTTP 请求中包含“Referer:URL”头。


-s, --save-headers 将 HTTP 头存入文件。


-U, --user-agent=AGENT-string 标志为 AGENT 而不是 Wget/VERSION。


--post-data=string  添加post提交内容信息

例子:

# Log in to the server.  This can be done only once.

wget --save-cookies cookies.txt \

     --post-data 'user=foo&password=bar' \

     http://server.com/auth.php


# Now grab the page or pages we care about.

wget --load-cookies cookies.txt \

     -p http://server.com/interesting/article.php

这种情况下,如果服务器使用会话cookie来追踪用户认证信息,上面的例子是不起作用的,因为--save-cookies不会保持会话cookie的,所以cookie.txt将会是个空文件,如果想要保存会话cookie到文件的话,需要结合--keep-session-cookies一起使用。


--post-file=文件名  从文件中载入要post提交的内容信息




HTTPS (SSL) 选项:


--secure-protocol==值 选择 SSL 协议; 有效值为auto, SSLv2, SSLv3, TLSv1


--no-check-certificate  不检查服务器端证书


--certificate=文件 可选的客户段端证书。


--certificate-type=类型  指定客户端证书的类型,有效类型为 PEM(默认)或者 DER(也被称做ASN1)


--private-key=文件  从文件中读取私钥内容


--private-key-type=类型  设置私钥的类型,有效类型为PEM(默认)或者 DER


--ca-certificate=文件  以此文件做为捆绑认证中心(ca)的文件,类型必须为PEM,如果没有这个选项,wget会在系统指定的位置去找CA,这个位置在安装OpenSSL的时候就已经设定了


--ca-directory=目录位置   指定存在PEM格式的ca认证目录位置,如果存在多个ca认证时,使用--ca-directory要比--ca-certificate更有效率


--random-file=文件  选择此文件做为随机数据源来产生伪随机数


--egd-file=文件  EGD socket 文件名。EGD=Entropy Gathering Daemon




FTP 选项:


--ftp-user=user

--ftp-password=password  连接ftp服务器的用户名和密码


--no-remove-listing  在Wget方不删除“.listing”文件,这个文件包含从ftp服务器接收的源目录列表信息。


--no-glob 设置关闭识别有通配符的文件名。默认是打开的


--no-passive-ftp 不使用“被动”传输模式。默认是使用被动模式的


--retr-symlinks 在递归模式中,下载链接所指示的文件(连至目录则例外)。



递归下载:


-r, --recursive 递归下载。


-l, --level=数字 最大递归深度(inf 或 0 表示无限)。


--delete-after 告诉wget删除本地的每个下载完成的单个文件。


-k, --convert-links 将绝对链接转换为相对链接。


-K, --backup-converted 转换文件 X 前先将其备份为 X.orig。


-m, --mirror 等效于 -r -N -l inf --no-remove-listing 的选项。


-p, --page-requisites 下载所有显示完整网页所需的文件,例如图像。


--strict-comments 打开对 HTML 备注的严格(SGML)处理选项。



递归下载时有关接受/拒绝的选项:


-A, --accept=列表 接受的文件样式列表,以逗号分隔。


-R, --reject=列表 排除的文件样式列表,以逗号分隔。


-D, --domains=列表 接受的域列表,以逗号分隔。


--exclude-domains=列表 排除的域列表,以逗号分隔。


--follow-ftp 跟随 HTML 文件中的 FTP 链接。


--follow-tags=列表 要跟随的 HTML 标记,以逗号分隔。


--ignore-tags=列表 要忽略的 HTML 标记,以逗号分隔。


--ignore-case  忽略大小写


-H, --span-hosts 递归时可进入其它主机。


-L, --relative 只跟随相对链接。


-I, --include-directories=列表 要下载的目录列表。


-X, --exclude-directories=列表 要排除的目录列表。


-np, --no-parent 不搜索上层目录。 



退出状态:


0  没有问题


1  通用错误代码


2  解析错误


3  文件I/O错误


4  网络失败


5  SSL认证失败


6  用户名或密码认证错误


7  协议错误


8  服务器端产生一个错误回应



相关文件:


/etc/wgetrc  默认wget全局配置初始化文件


.wgetrc  用户初始化文件