weidagang2046的专栏

物格而后知致
随笔 - 8, 文章 - 409, 评论 - 101, 引用 - 0
数据加载中……

wget——Linux下Web文件提取工具

wget是一个Linux环境下用于从World Wide Web上提取文件的工具,这是一个GPL许可
证下的自由软件,其作者为Hrvoje Niksic <hniksic@srce.hr>。wget支持HTTP和FTP
协议,支持代理服务器和断点续传功能,能够自动递归远程主机的目录,找到合乎条
件的文件并将其下载到本地硬盘上;如果必要,wget将恰当地转换页面中的超级连接
以在本地生成可浏览的镜像。由于没有交互式界面,wget可在后台运行,截获并忽略
HANGUP信号,因此在用户推出登录以后,仍可继续运行。通常,wget用于成批量地下
载Internet网站上的文件,或制作远程网站的镜像。

语法:

    wget [options] [URL-list]
URL地址格式说明:可以使用如下格式的URL:
    http://host[:port]/path
例如:
    http://fly.cc.fer.hr/
    ftp://ftp.xemacs.org/pub/xemacs/xemacs-19.14.tar.gz
    ftp://username:password@host/dir/file 
在最后一种形式中,以URL编码形式为FTP主机提供了用户名和密码(当然,也可以使
用参数提供该信息,见后)。

参数说明:

wget的参数较多,但大部分应用只需要如下几个常用的参数:
    -r    递归;对于HTTP主机,wget首先下载URL指定的文件,然后(如果该文件是
    一个HTML文档的话)递归下载该文件所引用(超级连接)的所有文件(递归深度
    由参数-l指定)。对FTP主机,该参数意味着要下载URL指定的目录中的所有文件,
    递归方法与HTTP主机类似。

    -N    时间戳:该参数指定wget只下载更新的文件,也就是说,与本地目录中的对
    应文件的长度和最后修改日期一样的文件将不被下载。

    -m    镜像:相当于同时使用-r和-N参数。

    -l    设置递归级数;默认为5。-l1相当于不递归;-l0为无穷递归;注意,当递
    归深度增加时,文件数量将呈指数级增长。

    -t     设置重试次数。当连接中断(或超时)时,wget将试图重新连接。如果指
    定-t0,则重试次数设为无穷多。

    -c    指定断点续传功能。实际上,wget默认具有断点续传功能,只有当你使用别
    的ftp工具下载了某一文件的一部分,并希望wget接着完成此工作的时候,才需要
    指定此参数。

使用举例:
    wget -m -l4 -t0 http://oneweb.com.cn/
将在本地硬盘建立http://oneweb.com.cn/的镜像,镜像文件存入当前目录下一个名为
oneweb.com.cn的子目录中(你也可以使用-nH参数指定不建立该子目录,而直接在当前
目录下建立镜像的目录结构),递归深度为4,重试次数为无穷(若连接出现问题,
wget将坚韧不拔地永远重试下去,知道任务完成!)

另外一些使用频率稍低的参数如下:
    -A acclist / -R rejlist:
这两个参数用于指定wget接受或排除的文件扩展名,多个名称之间用逗号隔开。例如,
假设我们不想下载MPEG视频影像文件和.AU声音文件,可使用如下参数:
    -R mpg,mpeg,au

其它参数还有:
    -L     只扩展相对连接,该参数对于抓取指定站点很有用,可以避免向宿主主机
    的其他目录扩散。例如,某个人网站地址为:http://www.xys.org/~ppfl/,使用
    如下命令行:
    wget -L http://www.xys.org/~ppfl/
    则只提取该个人网站,而不涉及主机www.xys.org上的其他目录。

    -k    转换连接:HTML文件存盘时,将其中的非相对连接转换成为相对连接。

    -X    在下载FTP主机上的文件时,排除若干指定的目录

另外,下面参数用于设置wget的工作界面:
    -v    设置wget输出详细的工作信息。
    -q    设置wget不输出任何信息。

如果我们已经在一个HTML文档(或普通文本文档)中存储了所要提取的文件的连接,
可以让wget直接从该文件中提取信息,而不用在命令行中提供URL地址,参数格式为:
    -i filename
地址文件也可以不是HTML文档,例如,一个普通的文本文件,其中有需要下载的URL列
表即可。
我们可以用以下技巧提高下载速度:由于Linux是一个多任务系统,我们可以同时运行
多个wget进程以提高下载速度,例如,先下载某主页文件(index.html),然后将该
文件所列出的所有地址分别用一个独立的wget进程进行下载。

至于其他的参数,可参考wget的man手册页,命令为:
    man wget


from: http://fanqiang.chinaunix.net/a6/b9/20020514/060201225.html

posted on 2006-11-17 09:56 weidagang2046 阅读(1577) 评论(0)  编辑  收藏 所属分类: Linux


只有注册用户登录后才能发表评论。


网站导航: