• Linux学习(二) wget命令的使用


    近期在Linux下进行一些操作,在非常多地方都用到了wget这个命令,记录一下一些有关wget的使用方法:

    wget是在Linux下开发的开放源码的软件,作者是Hrvoje Niksic,后来被移植到包含Windows在内的各个平台上。它有下面功能和特点:
    (1)支持断点下传功能;这一点,也是网络蚂蚁和FlashGet当年最大的卖点。如今,Wget也能够使用此功能,那些网络不是太好的用户能够放心了。
    (2)同一时候支持FTP和HTTP下载方式。虽然如今大部分软件能够使用HTTP方式下载。可是,有些时候,仍然须要使用FTP方式下载软件;
    (3)支持代理server;对安全强度非常高的系统而言。一般不会将自己的系统直接暴露在互联网上,所以。支持代理是下载软件必须有的功能;
    (4)设置方便简单。可能,习惯图形界面的用户已经不是太习惯命令行了,可是,命令行在设置上事实上有很多其它的长处,最少,鼠标能够少点非常多次。也不要操心是否错点鼠标;
    (5)程序小,全然免费;程序小能够考虑不计。由于如今的硬盘实在太大了;全然免费就不得不考虑了,即使网络上有非常多所谓的免费软件,可是,这些软件的广告却不是我们喜欢的;

    wget尽管功能强大,可是使用起来还是比較简单的,主要的语法是:wget [參数列表] URL。以下就结合详细的样例来说明一下wget的使用方法。
    1、下载整个http或者ftp网站。
    wget http://place.your.url/here
    这个命令能够将http://place.your.url/here 首页下载下来。

    使用-x会强制建立server上一模一样的文件夹。假设使用-nd參数,那么server上下载的全部内容都会加到本地当前文件夹。

    wget -r http://place.your.url/here
    这 个命令会依照递归的方法。下载server上全部的文件夹和文件。实质就是下载整个站点。这个命令一定要小心使用。由于在下载的时候,被下载站点指向的全部地址同 样会被下载,因此,假设这个站点引用了其它站点,那么被引用的站点也会被下载下来!

    基于这个原因。这个參数不经常使用。能够用-l number參数来指定下载的层次。比如仅仅下载两层,那么使用-l 2。

    要是您想制作镜像网站,那么能够使用-m參数,比如:wget -m http://place.your.url/here
    这时wget会自己主动推断合适的參数来制作镜像网站。

    此时,wget会登录到server上,读入robots.txt并按robots.txt的规定来运行。

    2、断点续传。
    当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完。连接就已经被切断,此时就须要断点续传。

    wget的断点续传是自己主动的,仅仅须要使用-c參数,比如:
    wget -c http://the.url.of/incomplete/file
    使用断点续传要求server支持断点续传。-t參数表示重试次数。比如须要重试100次。那么就写-t 100。假设设成-t 0。那么表示无穷次重试,直到连接成功。-T參数表示超时等待时间。比如-T 120,表示等待120秒连接不上就算超时。

    3、批量下载。
    假设有多个文件须要下载。那么能够生成一个文件,把每一个文件的URL写一行。比如生成文件download.txt,然后用命令:wget -i download.txt
    这样就会把download.txt里面列出的每一个URL都下载下来。

    (假设列的是文件就下载文件,假设列的是站点。那么下载首页)

    4、选择性的下载。
    能够指定让wget仅仅下载一类文件,或者不下载什么文件。

    比如:
    wget -m –reject=gif http://target.web.site/subdirectory
    表示下载http://target.web.site/subdirectory。可是忽略gif文件。–accept=LIST 能够接受的文件类型,–reject=LIST拒绝接受的文件类型。

    5、password和认证。
    wget仅仅能处理利用username/password方式限制訪问的站点,能够利用两个參数:
    –http-user=USER设置HTTP用户
    –http-passwd=PASS设置HTTPpassword
    对于须要证书做认证的站点,就仅仅能利用其它下载工具了,比如curl。

    6、利用代理server进行下载。
    假设用户的网络须要经过代理server。那么能够让wget通过代理server进行文件的下载。

    此时须要在当前用户的文件夹下创建一个.wgetrc文件。文件里能够设置代理server:
    http-proxy = 111.111.111.111:8080
    ftp-proxy = 111.111.111.111:8080
    分别表示http的代理server和ftp的代理server。假设代理server须要password则使用:
    –proxy-user=USER设置代理用户
    –proxy-passwd=PASS设置代理password
    这两个參数。
    使用參数–proxy=on/off 使用或者关闭代理。


    wget还有非常多实用的功能。须要用户去挖掘。

    附录:

    命令格式:
    wget [參数列表] [目标软件、网页的网址]

    -V,–version 显示软件版本然后退出;
    -h,–help显示软件帮助信息;
    -e,–execute=COMMAND 运行一个 “.wgetrc”命令

    -o,–output-file=FILE 将软件输出信息保存到文件。
    -a,–append-output=FILE将软件输出信息追加到文件;
    -d,–debug显示输出信息;
    -q,–quiet 不显示输出信息。
    -i,–input-file=FILE 从文件里取得URL;

    -t,–tries=NUMBER 是否下载次数(0表示无穷次)
    -O –output-document=FILE下载文件保存为别的文件名称
    -nc, –no-clobber 不要覆盖已经存在的文件
    -N,–timestamping仅仅下载比本地新的文件
    -T,–timeout=SECONDS 设置超时时间
    -Y,–proxy=on/off 关闭代理

    -nd,–no-directories 不建立文件夹
    -x,–force-directories 强制建立文件夹

    –http-user=USER设置HTTP用户
    –http-passwd=PASS设置HTTPpassword
    –proxy-user=USER设置代理用户
    –proxy-passwd=PASS设置代理password

    -r,–recursive 下载整个站点、文件夹(小心使用)
    -l,–level=NUMBER 下载层次

    -A,–accept=LIST 能够接受的文件类型
    -R,–reject=LIST拒绝接受的文件类型
    -D,–domains=LIST能够接受的域名
    –exclude-domains=LIST拒绝的域名
    -L,–relative 下载关联链接
    –follow-ftp 仅仅下载FTP链接
    -H,–span-hosts 能够下载外面的主机
    -I,–include-directories=LIST同意的文件夹
    -X,–exclude-directories=LIST 拒绝的文件夹

    中文文档名在寻常的情况下会被编码。 可是在 –cut-dirs 时又是正常的,
    wget -r -np -nH –cut-dirs=3 ftp://host/test/
    測试.txt
    wget -r -np -nH -nd ftp://host/test/
    %B4%FA%B8%D5.txt
    wget “ftp://host/test/*”
    %B4%FA%B8%D5.txt

    因为不知名的原因,可能是为了避开特殊档名, wget 会自己主动将抓取档名的部分用 encode_string 处理过, 所以该 patch 就把被 encode_string 处理成 “%3A” 这样的东西, 用 decode_string 还原成 “:”。并套用在文件夹与档案名称的部分。decode_string 是 wget 内建的函式。

    wget -t0 -c -nH -x -np -b -m -P /home/sunny/NOD32view/  http://downloads1.kaspersky-labs.com/bases/ -o wget.log

    原文地址:http://linux.blogbus.com/logs/46636997.html


  • 相关阅读:
    Python: 编程遇到的一些问题以及网上解决办法?
    Python: Win7下使用 pip install lxml 无法安装lxml?
    Python:Pycharm下无法导入安装好的第三方模块?
    Python:如何删除文件中的空白行?
    Pycharm 快捷键
    Python读取二进制文件
    python实现grep
    Python学习笔记
    VBA批量查找和复制文件
    %~dp0是什么意思
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7212510.html
Copyright © 2020-2023  润新知