wget的几种典型用法(介绍典型的)

来源:互联网 发布:申请加入淘宝游戏专营 编辑:程序博客网 时间:2024/05/20 07:54

wget的几种典型用法(介绍典型的)

Wget可以下载http和ftp网站文件,小命令但功能强,它的参数很多,但常用的不多。

一. 最简单的用法
wget http://download.xxx.com/soft/software.tar.gz

二. 下载整个网站

wget --mirror [--convert-links] http://www.xxxx.org/
或短写参数:
wget -m [-k] http://www.xxxx.org

-m / --mirror:镜像整个网站,它与“-r -l inf -N”这三个参数一起用效果相同
-r / --recursive:以递归方式抓取
-l depth / --level=depth:递归的深度,缺省最大值为5,0或inf表示无限多
-N / --timestamping:时间戳,不知道有什么用
-k / --convert-links:在全部下载完成之后,修改已下载页面中的链接,如果链接所指向的文件也下在本地了,就指向这个文件,否则,就指向http上原来的文件

三. 下载特定类型的文件

下载图片:
wget -m -p -np -nd --accept=jpg,jpeg,png http://www.xxx.com/top/page.html

-np / --no-parent:不下载指向上层的链接
--reject=avi,rmvb:不下载'.avi','.rmvb'类型的文件
--accept=jpg,jpeg:只下载'.jpg','.jpeg'类型的文件

四. 下载MP3

无人看守下载:
把文件的URL,如在百度搜的mp3的URL,存成一个文件,如songs,执行:
wget --input-file=songs --continue --timeout=20 --tries=5
即逐个下载songs中的URL,断点续传,对每个文件20秒超时重试5次

即时并行下载MP3 (后台执行):
写一脚本实现更好的功能:
echo 'Usage:'
echo '    Enter "URL filename" for each file to download.'
echo '    Enter "bye" to exit.'
while read -p '> ' url name; [ "$url" != "bye" ]
do
    if [ "$name" != "" ]
        then OUT="-O $name.${url##*.}"
        else OUT=""
    fi
    if [ "${url##*.}" == "$url" ]
        then echo "\"$url\" is an unexpected URL."
        else wget --continue --timeout=20 --tries=5 --background --output-file=/dev/null $url $OUT
    fi
done
echo ' enjoy!'
存为文件“downsong”,并赋之予可执行权限。
用法:
./downsong
> http://music.xxx.com/zyfx.mp3 自由飞翔
> http://music.xxx.com/qtbhl.wma 秋天不回来
> http://music.xxx.com/zgh.mp3
......
输完敲“bye”退出,wget会在后台同时下载各个文件,这种方法比较快,用“ps aux | grep wget”查看进程。

五. 其它有用的参数说明

--tries=number / -t number:指定连接失败时重试次数,0或inf表示无限重试,缺省值为20。但如果遇到“连接被拒绝”或“文件没找到(404)”之类的错误,则不重试

--timeout=seconds / -T seconds:指定seconds秒连接超时

--input-file=file / -i file:读取file中的URL下载,如果用‘-’代替file,则从标准输入读取URL

--output-document=file / -O file:指定输出文件名为file

--no-clobber / -nc:通常在遇到下下来的文件重名,wget将为后下的文件加上‘.1’,‘.2’等加以区分。如果用了这个参数,则一旦后下的文件将与先下的同名,将不再下载后下的文件而保留先下的不变

--no-directories / -nd:保存文件时,即使原来不在一起的文件,也不创建文件夹,所有文件全放在当前目录下

--page-requisites / -p:下载html文件时,把与它有关的图片,声音,脚本等相关文件一同下下来

--continue / -c:启用断点续传

--background / -b:在后台下载,不占用命令行。此时若没用‘-o’指定把输出信息送到哪个文件,会自动把输出信息送入当前目录下的wget-log中

--output-file=logfile / -o logfile:指定输出信息送入logfile

--quiet / -q:关闭输出信息

# 参考资料:wget manpage.