• 其实你不懂wget的心-01


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

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

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

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

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

    wget是个非常遵守Robot Exclusion Standardrobots.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命令上设置,就可以实现"不下载"wukongbajie目录。

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

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

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

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

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

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

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

    6 wget命令的版本是多少?

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

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

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

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

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

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

  • 相关阅读:
    2016"百度之星"
    ZOJ 3703 Happy Programming Contest(01背包的灵活运用)
    LA 3942 Remember the Word (Trie树)
    ZOJ 3700 Ever Dream(Vector)
    Hdoj 1686 Oulipo
    2017总结,2018计划
    Ubuntu16.04 + caffe-ssd + [CPU_ONLY] + KITTI 训练总结
    【转载】The Elements of Programming Style之代码风格金科玉律
    qt中setStyleSheet导致的内存泄漏
    【转】用枚举定义有意义的数组下标
  • 原文地址:https://www.cnblogs.com/zllz5230/p/4971269.html
Copyright © 2020-2023  润新知