最新消息:

wget下载方法详解

Linux软件介绍 大步 3118浏览 0评论

总结自网上,还可参《linux windows wget下载迅雷离线文件的方法

wget
功能说明: wget使用 HTTP 和 FTP 协议,支持代理服务器和断点续传,是基于控制台最强大的下载工
具。
命令格式: wget [参数] <URL>
常用参数:
1. 启动选项:
-V : 显示 wget 的版本
-h : 显示 wget 的使用说明
-b : 启动之后转入后台执行,日志文件写在当前目录下”wget-log”文件中
-e <COMMAND> : 执行一个 .wgetrc 里面的 <COMMAND> 指令
2. 日志文件与输入文件选项:
-o <FILE> : 将命令的输出写入指定的 <FILE> 文件
-a <FILE> : 将命令的输出以追加方式写入指定的 <FILE> 文件
-d : 显示调试信息
-q : 以安静模式执行(无输出)
-v : 输出详细信息
-nv : 关闭详细信息输出,但不是安静模式
-i <FILE> : 从指定的 <FILE> 文件中读取 URL
-F : 把输入文件视为 HTML 文件(与 -i 参数同时使用)
-B <URL> : 与 -F 一同使用,优先考虑 -i 所指定文件中的 URL
3. 下载选项:
-t <NUMBER> : 当wget无法与服务器建立连接时,尝试连接<NUMBER>次,(0表示无限制)
-O <FILE> : 将下载的文件保存为指定的 <FILE>
-nc : 不覆盖已有的文件
-c : 续传文件
-N : 不取回比本地旧的文件,只下载更新的文件
-S : 显示服务器响应
-T <SECONDS> : 设定响应超时的秒数为 <SECONDS>
-w <SECONDS> : 在两次尝试之间等待 <SECONDS> 秒
-Y : 通过代理服务器进行连接
-Q <quota> : 限制下载文件的总大小最多不能超过 <quota>,单位为字节,可以使用 k,m 后缀
––limit-rate=<RATE> : 限定下载传输率,单位为字节,可以使用 k,m 后缀
4. 目录选项:
-nd : 不下载目录结构,把从服务器所有指定目录下载的文件都堆到当前目录里
-x : 创建与远程完全一直的目录结构
-nH : 不创建以目标主机域名为目录名的目录,将目标主机的目录结构直接下到当前目录下
-P <PREFIX> : 将文件保存到目录 PREFIX/…
––cut-dirs=<NUMBER> : 忽略 <NUMBER> 层远程目录
5. HTTP 选项:
––http-user=<USER> : 指定 HTTP 用户验证的用户
––http-passwd=<PASS> : 指定 HTTP 用户验证的用户口令
––no-cache : 禁用服务器端的数据缓存 (默认情况下为允许)

-C, –cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许).
-E, –html-extension 将所有text/html文档以.html扩展名保存
–ignore-length 忽略 `Content-Length'头域
–header=STRING 在headers中插入字符串 STRING
––proxy-user=<USER> : 指定 Proxy 使用者为 <USER>
––proxy-passwd=<PASS> : 指定 Proxy 使用者口令为 <PASS>
-E : 将所有类型为 application/xhtml+xml 或 text/html 的文档以 .html 扩展名保存
-U <AGENT> : 设定代理的名称为 <AGENT> 而不是 Wget/VERSION

–referer=URL 在HTTP请求中包含 `Referer: URL'头
-s, –save-headers 保存HTTP头到文件
-U, –user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION.
–no-http-keep-alive 关闭 HTTP活动链接 (永远链接).
–cookies=off 不使用 cookies.
--load-cookies=FILE 在开始会话前从文件 FILE中加载cookie
–save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件
6. FTP 选项:
––ftp-user=<USER> : 指定 FTP 用户
––ftp-passwd=<PASS> : 指定 FTP 用户口令
––no-remove-listing : 不移除临时的 .listing 文件
––no-glob : 关闭文件名的 globbing 机制(即不使用通配符)

–passive-ftp 使用被动传输模式 (缺省值).
–active-ftp 使用主动传输模式
––no-passive-ftp : 关闭默认的被动传输模式(即使用主动传输模式)
––retr-symlinks : 在递归时,将链接指向文件(而不是目录)
7. 使用递回方式获取选项:
-r : 打开递归下载
-l <NUMBER> : 指定最大递归深度为 <NUMBER> (inf 或 0 代表无穷)
––delete-after : 删除下载完毕的本地文件
-k : 转换非相对链接为相对链接

-K  (大写), –backup-converted 在转换文件X之前,将之备份为 X.orig
-m : 开启适合用来镜像的选项,等价于 -N -r -l inf ––no-remove-listing
-p : 用以确保所有用于显示被下载网页的元素都被下载,如:图像,声音以及网页中用到的样式表
8. 递回方式的允许与拒绝选项:
-A <LIST> : 在 <LIST> 指定允许下载的扩展文件名(用逗号间隔)
-R <LIST> : 在 <LIST> 指定禁止下载的扩展文件名(用逗号间隔)
-D <LIST> : 在 <LIST> 指定允许下载的域名
––exclude-domains=<LIST> : 在 <LIST> 指定禁止下载的域名
––follow-ftp : 跟踪 HTML 文档中的 FTP 链接
––follow-tags=<LIST> : 在 <LIST> 中指定用逗号分隔的被跟踪的HTML标签列表
––ignore-tags=<LIST> : 在 <LIST> 中指定用逗号分隔的不被跟踪的HTML标签列表

-G, –ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表
-H : 当递归时转到外部主机
-L : 仅仅跟踪相对链接
-I <LIST> : 在 <LIST> 指定允许下载的目录列表
-X <LIST> : 在 <LIST> 指定禁止下载的目录列表
-np : 不要追溯到父目录,即只下载目标站点指定目录及其子目录的内容

 

使用举例:
1、下载单个文件
$ wget http://osmond.cn/cdbe/CDBE.zip
2、以续传方式后台下载单个文件
$ wget -bc http://ftp.hostrino.com/pub/centos/5.0/isos/i386/CentOS-5.0-i386-bin-
3、只下载单一HTML文件,确保影响着页面显示的所有元素均被下载,并重新建立链接
$ wget -p -k http://osmond.cn/cdbe/manual/index.html
4.下载www.xxx.org/pub/path/整个目录

wget -c -r -np -k -L -p www.xxx.org/pub/path/

在下载时。有用到外部域名的图片或连接。如果需要同时下载就要用-H参数。

wget -np -nH -r --span-hosts www.xxx.org/pub/path/

-c 断点续传
-r 递归下载,下载指定网页某一目录下(包括子目录)的所有文件
-nd 递归下载时不创建一层一层的目录,把所有的文件下载到当前目录
-np 递归下载时不搜索上层目录,如wget -c -r www.xxx.org/pub/path/
没有加参数-np,就会同时下载path的上一级目录pub下的其它文件
-k 将绝对链接转为相对链接,下载整个站点后脱机浏览网页,最好加上这个参数
-L 递归时不进入其它主机,如wget -c -r www.xxx.org/
如果网站内有一个这样的链接:
www.yyy.org,不加参数-L,就会像大火烧山一样,会递归下载www.yyy.org网站
-p 下载网页所需的所有文件,如图片等
-A 指定要下载的文件样式列表,多个样式用逗号分隔
-i 后面跟一个文件,文件内指明要下载的URL

5、下载整个网站做本地镜像网站 http://www.xyz.edu.cn 的内容
$ wget –m –l4 -t0 http://www.xyz.edu.cn

或者

wget -r -p -np -k http://dsec.pku.edu.cn/~usr_name/
6、只下载网站指定的目录,避免向远程主机的其他目录扩散,并拒绝下载gif和jpg文件
$ wget -r –L -R gif,jpg http://www.xyz.edu.cn/doc/
7、递归下载 http://www.xyz.edu.cn 下的 blog 和 wiki 目录并将文件后缀存为html
$ wget -r -k -p -np -E -I blog,wiki http://www.xyz.edu.cn
8、递归下载 http://ayo.freshrpms.net/redhat/9/i386/updates/RPMS 的所有文件到当前目录
$ wget -r -nH -nd http://ayo.freshrpms.net/redhat/9/i386/updates/RPMS
9、批量下载(首先将每个要下载文件的URL写一行,生成文件 download.txt)
$ wget -i download.txt -o download.log
10、使用代理下载
$ wget -Y -i download.txt -o download.log

代理可以在环境变量或wgetrc文件中设定

如何设置代理

# 在环境变量中设定代理
export PROXY=http://214.97.161.94:80/
# 在~/.wgetrc中设定代理
http_proxy = http://214.97.161.94:80/
ftp_proxy = http://214.97.161.94:80/

11.* 在不稳定的网络上下载一个部分下载的文件,以及在空闲时段下载
wget -t 0 -w 31 -c http://dsec.pku.edu.cn/BBC.avi   -o down.log &
# 或者从filelist读入要下载的文件列表
wget -t 0 -w 31 -c -B ftp://dsec.pku.edu.cn/linuxsoft   -i filelist.txt -o
down.log &

转载请注明:大步's Blog » wget下载方法详解

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

SiteMap