Python学习——Linux命令——wget命令
今天听说了⼀个特别⽜逼的Linux命令,然后去搜了⼀下资料,对它有了简单的了解,总结了⼀些它的⽤法。wget是⼀个下载⽂件的⼯具,它也是⽤在⼩⿊窗⼝中的。对于Linux⽤户来说简直是⼀⼤福利。因为我们要经常要下载很多软件或者从远程服务器恢复备份到本地服务器。wget⽀持HTTP,HTTPS和FTP协议,可以使⽤HTTP代理。⾃动下载就是wget可以在⽤户退出系统后在后台执⾏。这也就意味着我们可以登出系统,启动wget下载任务,然后退出系统,wget将在后台执⾏知道任务完成,相对于其他⼤部分浏览器在下载⼤量数据时需要⽤户⼀直的参与,这省去了极⼤的⿇烦。WC被深深震撼了,简直强的⼀马。
wget可以跟踪在HTML页⾯上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的⽬录结构。这⼜常被称作“递归下载”。在递归下载的时候,wget遵循RobotExclusion标准,wget可以在下载的同时,将链接转换成指向本地⽂件,以⽅便离线浏览。wget ⾮常稳定,它在带宽很窄的情况下和不稳定⽹络中有很强的适应性.如果是由于⽹络的原因下载失败,wget会不断的尝试,直到整个⽂件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停⽌的地⽅继续下载。这对从那些限定了链接时间的服务器上下载⼤⽂件⾮常有⽤。
1.命令格式:
wget [参数] [URL地址]
2.命令功能:
⽤于从⽹络上下载资源,没有指定⽬录,下载资源回默认为当前⽬录。wget虽然功能强⼤,但是使⽤起来还是⽐较简单:
1)⽀持断点下传功能;这⼀点,也是⽹络蚂蚁和FlashGet当年最⼤的卖点,现在,Wget也可以使⽤此功能,那些⽹络不是太好的⽤户可以放⼼了;
2)同时⽀持FTP和HTTP下载⽅式;尽管现在⼤部分软件可以使⽤HTTP⽅式下载,但是,有些时候,仍然需要使⽤FTP⽅式下载软件;
3)⽀持代理服务器;对安全强度很⾼的系统⽽⾔,⼀般不会将⾃⼰的系统直接暴露在互联⽹上,所以,⽀持代理是下载软件必须有的功能;
4)设置⽅便简单;可能,习惯图形界⾯的⽤户已经不是太习惯命令⾏了,但是,命令⾏在设置上其实有更多的优点,最少,⿏标可以少点很多次,也不要担⼼是否错点⿏标;
5)程序⼩,完全免费;程序⼩可以考虑不计,因为现在的硬盘实在太⼤了;完全免费就不得不考虑了,即使⽹络上有很多所谓的免费软件,但是,这些软件的⼴告却不是我们喜欢的。
3.命令参数:
启动参数:
-V, –version 显⽰wget的版本后退出
-h, –help 打印语法帮助
-b, –background 启动后转⼊后台执⾏
-e, –execute=COMMAND 执⾏`.wgetrc’格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc
记录和输⼊⽂件参数:
-o, –output-file=FILE 把记录写到FILE⽂件中
-a, –append-output=FILE 把记录追加到FILE⽂件中
-d, –debug 打印调试输出
-q, –quiet 安静模式(没有输出)
-
v, –verbose 冗长模式(这是缺省设置)
-nv, –non-verbose 关掉冗长模式,但不是安静模式
-i, –input-file=FILE 下载在FILE⽂件中出现的URLs
-F, –force-html 把输⼊⽂件当作HTML格式⽂件对待
-B, –base=URL 将URL作为在-F -i参数指定的⽂件中出现的相对链接的前缀
–sslcertfile=FILE 可选客户端证书
–sslcertkey=KEYFILE 可选客户端证书的KEYFILE
–egd-file=FILE 指定EGD socket的⽂件名
下载参数:
–bind-address=ADDRESS 指定本地使⽤地址(主机名或IP,当本地有多个IP或名字时使⽤) -t, –tries=NUMBER 设定最⼤尝试链接次数(0 表⽰⽆限制).
-O –output-document=FILE 把⽂档写到FILE⽂件中
-nc, –no-clobber 不要覆盖存在的⽂件或使⽤.#前缀
-c, –continue 接着下载没下载完的⽂件
–progress=TYPE 设定进程条标记
-N, –timestamping 不要重新下载⽂件除⾮⽐本地⽂件新
-S, –server-response 打印服务器的回应
–spider 不下载任何东西
-T, –timeout=SECONDS 设定响应超时的秒数
-w, –wait=SECONDS 两次尝试之间间隔SECONDS秒
–waitretry=SECONDS 在重新链接之间等待1…SECONDS秒
–random-wait 在下载之间等待0…2*WAIT秒
-Y, –proxy=on/off 打开或关闭代理
-
Q, –quota=NUMBER 设置下载的容量限制
–limit-rate=RATE 限定下载输率
⽬录参数:
-nd –no-directories 不创建⽬录
-x, –force-directories 强制创建⽬录
-nH, –no-host-directories 不创建主机⽬录
-P, –directory-prefix=PREFIX 将⽂件保存到⽬录 PREFIX/…
–cut-dirs=NUMBER 忽略 NUMBER层远程⽬录
HTTP 选项参数:
–http-user=USER 设定HTTP⽤户名为 USER.
–http-passwd=PASS 设定http密码为 PASS
-
C, –cache=on/off 允许/不允许服务器端的数据缓存 (⼀般情况下允许)
-E, –html-extension 将所有text/html⽂档以.html扩展名保存
–ignore-length 忽略 `Content-Length’头域
–header=STRING 在headers中插⼊字符串 STRING
–proxy-user=USER 设定代理的⽤户名为 USER
–proxy-passwd=PASS 设定代理的密码为 PASS
–referer=URL 在HTTP请求中包含 `Referer: URL’头
-s, –save-headers 保存HTTP头到⽂件
-U, –user-agent=AGENT 设定代理的名称为 AGENT⽽不是 Wget/VERSION –no-http-keep-alive 关闭 HTTP活动链接 (永远链接)
–cookies=off 不使⽤ cookies
–load-cookies=FILE 在开始会话前从⽂件 FILE中加载cookie
–save-cookies=FILE 在会话结束后将 cookies保存到 FILE⽂件中
FTP 选项参数:
-nr, –dont-remove-listing 不移⾛ `.listing’⽂件
-g, –glob=on/off 打开或关闭⽂件名的 globbing机制
–passive-ftp 使⽤被动传输模式 (缺省值).
–active-ftp 使⽤主动传输模式
–retr-symlinks 在递归的时候,将链接指向⽂件(⽽不是⽬录)
递归下载参数:
-r, –recursive 递归下载--慎⽤!
-l, –level=NUMBER 最⼤递归深度 (inf 或 0 代表⽆穷)
–delete-after 在现在完毕后局部删除⽂件
-
k, –convert-links 转换⾮相对链接为相对链接
linux终端下载软件-K, –backup-converted 在转换⽂件X之前,将之备份为 X.orig
-m, –mirror 等价于 -r -N -l inf -nr
-p, –page-requisites 下载显⽰HTML⽂件的所有图⽚
递归下载中的包含和不包含(accept/reject):
-A, –accept=LIST 分号分隔的被接受扩展名的列表
-R, –reject=LIST 分号分隔的不被接受的扩展名的列表
-D, –domains=LIST 分号分隔的被接受域的列表
–exclude-domains=LIST 分号分隔的不被接受的域的列表
–follow-ftp 跟踪HTML⽂档中的FTP链接
–follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表
-
G, –ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表
-H, –span-hosts 当递归时转到外部主机
-L, –relative 仅仅跟踪相对链接
-I, –include-directories=LIST 允许⽬录的列表
-X, –exclude-directories=LIST 不被包含⽬录的列表
-np, –no-parent 不要追溯到⽗⽬录
wget -S –spider url 不下载只显⽰过程
4.使⽤实例:
实例1:使⽤wget下载单个⽂件
命令:
说明:
以下的例⼦是从⽹络下载⼀个⽂件并保存在当前⽬录,在下载的过程中会显⽰进度条,包含(下载完成百分⽐,已经下载的字节,当前下载速度,剩余下载时间)。
实例2:使⽤wget -O下载并以不同的⽂件名保存
命令:
wget -O wordpress.zip
说明:
wget默认会以最后⼀个符合”/”的后⾯的字符来命令,对于动态链接的下载通常⽂件名会不正确。
错误:下⾯的例⼦会下载⼀个⽂件并以名称download.aspx?id=1080保存
即使下载的⽂件是zip格式,它仍然以download.php?id=1080命令。
正确:为了解决这个问题,我们可以使⽤参数-O来指定⼀个⽂件名:
实例3:使⽤wget –limit -rate限速下载
命令:
说明:
当你执⾏wget的时候,它默认会占⽤全部可能的宽带下载。但是当你准备下载⼀个⼤⽂件,⽽你还需要下载其它⽂件时就有必要限速了。
实例4:使⽤wget -c断点续传
命令:
说明:
使⽤wget -c重新启动下载中断的⽂件,对于我们下载⼤⽂件时突然由于⽹络等原因中断⾮常有帮助,我们可以继续接着下载⽽不是重新下载⼀个⽂件。需要继续中断的下载时可以使⽤-c参数。
实例5:使⽤wget -b后台下载
命令:
说明:
对于下载⾮常⼤的⽂件的时候,我们可以使⽤参数-b进⾏后台下载。
Continuing in background, pid 1840.
Output will be written to `wget-log’.
你可以使⽤以下命令来察看下载进度:
tail -f wget-log
实例6:伪装代理名称下载
命令:
说明:
有些⽹站能通过根据判断代理名称不是浏览器⽽拒绝你的下载请求。不过你可以通过–user-agent参数伪装。
实例7:使⽤wget –spider测试下载链接
命令:
wget --spider URL
说明:
当你打算进⾏定时下载,你应该在预定时间测试下载链接是否有效。我们可以增加–spider参数进⾏检查。
wget --spider URL
如果下载链接正确,将会显⽰
wget --spider URL
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response… 200 OK
Length: unspecified [text/html]
Remote file exists and could contain further links,
but recursion is disabled – not retrieving.
这保证了下载能在预定的时间进⾏,但当你给错了⼀个链接,将会显⽰如下错误
wget --spider url
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response… 404 Not Found
Remote file does not exist – broken link
你可以在以下⼏种情况下使⽤spider参数:
定时下载之前进⾏检查
间隔检测⽹站是否可⽤
检查⽹站页⾯的死链接
实例8:使⽤wget –tries增加重试次数
命令:
wget --tries=40 URL
说明:
如果⽹络有问题或下载⼀个⼤⽂件也有可能失败。wget默认重试20次连接下载⽂件。如果需要,你可以使⽤–tries增加重试次数。实例9:使⽤wget -i下载多个⽂件
命令:
wget -
说明:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。