技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Linux --> 其实你不懂wget的心-01

其实你不懂wget的心-01

浏览:3488次  出处信息

    wget用英语定义就是the non-interactive network downloader,翻译过来就是非交互的网络下载器。

    1 wget都支持什么协议的下载?

    wget支持HTTP、HTTPS和FTP协议的下载,其中也包括通过HTTP代理的下载。看起来支持的协议没有你想想的多,但其实这已足够,我相信你很少使用除这些协议之外的协议来进行下载吧。

    2 wget有哪些特色之处?简单介绍一下。

    wget能够跟踪HTML文件和XHTML文件,从而使得你可以下载整个站点的文件,然后离线阅读。当然这个功能并不是特别常用,因为几乎所有站点都会包含外链,一旦你用wget进行整站的下载,它也会傻傻的去下载外链站点的内容,这样一来,子子孙孙无穷尽也。

    wget是个非常遵守Robot Exclusion Standard(robots.txt)标准的工具。

    wget支持慢速网络下载和不稳定网络的下载。当因为网络不稳定而导致下载失败时,wget会重试直到把目标文件下载下来为止。

    wget支持断点续传功能,当你下载的很大的文件在中途失败时,这项功能会很有用处。

    3 对于使用wget选项,有什么建议?

    由于wget是使用getopt函数来处理选项和参数的,因此wget既支持长格式的选项,也支持短格式的选项,他们大部分是一一对应的关系。但是我不建议大家使用短选项。

    当某个选项有参数时,你甚至可以在短选项和参数之间不加空格。比如-o log可以写成-olog。但是,你知道的,这也是不建议的。

    如果你连续使用了多个短选项,且这些短选项不需要加参数,那么可以将他们组合在一起。比如-d -r -c可以写成-drc。恩,这是被建议的。呵呵

    4 wget有什么潜规则不?

    当你使用wget时,请务必查看/etc/wgetrc文件和家目录下的.wgetrc文件,先搞清楚里面都设置了什么,再来使用wget命令不迟,否则,你早晚会吃大亏的。不是危言耸听哦。

    某些选项还可以接受用逗号隔开的参数。比如-X(大写的x)选项,它是用来设定“不希望下载”的目录列表。你可以用逗号把不希望下载的目录一个一个写上。比如“wget -X wukong , bajie”,这样wget心里就有数了,他知道wukong目录和bajie目录都是不用下载的。其实你也可以在.wgetrc文件中设置“不希望下载”的目录列表,格式是这样的:

    exclude_directories=wukong,bajie

    于是,你不必在wget命令上设置,就可以实现“不下载”wukong和bajie目录。

    当然,如果某天你下载东西时,发现总有几个目录下载不下来,你可要想到,有可能是其他人设置了.wgetrc造成的哦!当然你还要再去/etc/wgetrc文件中再查看一下,那里也是一个可疑的地方。

    还有一个小技巧,也可以避免这种误会(别人设置了exclude_directories,而你却不知道),那就是在你使用wget时,这样写:

    wget -r -X ” -X wukong,bajie ftp://localhost

    使用-X ”的目的就是去除.wgetrc和/etc/wgetrc的作用,然后再用-X wukong,bajie设置,就可以踏踏实实的保证不下载wukong和bajie目录,而其他目录绝不会受影响。

    小总结一下:.wgetrc和-X和/etc/wgetrc的设置都是属于平等关系,三者在使用时会进行并集。而在设置了-X ”时,就完全去掉了.wgetrc和/etc/wgetrc对于目录限制的作用。

    5 wget不是只能下单个文件么?怎么能下目录呢?

    你也太小看wget了。加上-r选项你试试,这就是传说中的“递归下载”。呵呵

    6 wget命令的版本是多少?

    使用wget -V(注意是大写的v哦)就可以查看了,或者是-version。我的是1.11.4(Red Hat Modified)

    7 我怎么能让wget进入后台执行呢?

    使用-background!启动的wget会立即进入后台执行。如果没有使用-o选项设置日志文件的话,缺省是记录在当前目录的wget-log文件中,其实这个日志就是当初输出到屏幕上的那些东东。更重要的一点是,即使你的远程终端连接被ctrl-D或exit了,也不会影响wget的后台执行。

    有人会问,我使用wget -r ftp://localhost/a &是不是也可以进入后台阿。你可以试试看,这样写不行的。你会发现即使瞬间看到命令提示符了,但也会瞬间被刷新了的进度条所重新覆盖。而且你使用ctrl-c还无法终止。只能kill进程来杀掉。所以说,如果你想进入后台执行,还是老老实实的使用-background吧!

    8 wget在下载网站时如果遇到robots.txt全禁怎么办?

    这时候,你可以使用“-execute 选项加参数”,它和把参数放到.wgetrc里的效果是一样的。你使用-execute robots=off就可以躲开robots.txt的追捕喽!

建议继续学习:

  1. wget 的使用    (阅读:4397)
  2. 其实你不懂wget的心-04    (阅读:3213)
  3. 其实你不懂wget的心-05    (阅读:2832)
  4. 其实你不懂wget的心-02    (阅读:2734)
  5. 其实你不懂wget的心-03    (阅读:2580)
  6. wget 自动发送用户名密码    (阅读:2427)
  7. wget中文使用手册    (阅读:2183)
  8. Linux下同时wget多个文件    (阅读:2181)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1