十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。

wget

上一篇 / 下一篇  2010-10-30 09:36:11 / 个人分类:测试经验

查看( 991 ) / 评论( 0 )
Wget是一个十分常用命令行下载工具,多数Linux发行版本都默认包含这个工具。如果没有安装可在http: //www.gnu.org /software/wget/wget.html下载最新版本,并使用如下命令编译安装: #tar zxvf wget- 1.9.1.tar.gz #cd wget-1.9.1 #./configure #make #make install 它的用法很简单.51Testing软件测试网6V8h8UU6|)H o8j
51Testing软件测试网 C)d\:p6H;M,|&O
1)支持断点下传功能;这一点,也是网络蚂蚁和FlashGet当年最大的卖点,现在,Wget也可以使用此功能,那些网络不是太好的用户可以放心了;51Testing软件测试网$c BUqx#tV
(2)同时支持FTP和HTTP下载方式;尽管现在大部分软件可以使用HTTP方式下载,但是,有些时候,仍然需要使用FTP方式下载软件;
tx5^/yR0 (3)支持代理服务器;对安全强度很高的系统而言,一般不会将自己的系统直接暴露在互联网上,所以,支持代理是下载软件必须有的功能;51Testing软件测试网TG^J,w+a
(4)设置方便简单;可能,习惯图形界面的用户已经不是太习惯命令行了,但是,命令行在设置上其实有更多的优点,最少,鼠标可以少点很多次,也不要担心是否错点鼠标;
B!p!i{ mv2K0W0 (5)程序小,完全免费;程序小可以考虑不计,因为现在的硬盘实在太大了;完全免费就不得不考虑了,即使网络上有很多所谓的免费软件,但是,这些软件的广告却不是我们喜欢的;51Testing软件测试网F+c8Bs;V zG5yT w
51Testing软件测试网+V}qQa/v.C
wget虽然功能强大,但是使用起来还是比较简单的,基本的语法是:wget [参数列表] URL。下面就结合具体的例子来说明一下wget的用法。
Z-De A]C0 1、下载整个http或者ftp站点。51Testing软件测试网7i(BK uU2Zw

H TF;RnA5O)I0 51Testing软件测试网h-t+h(hDr8r] N^
wget http://place.your.url/here51Testing软件测试网W L)I Z#~)U%c#z.X pV
这个命令可以将http://place.your.url/here 首页下载下来。使用-x会强制建立服务器上一模一样的目录,如果使用-nd参数,那么服务器上下载的所有内容都会加到本地当前目录。51Testing软件测试网:_[p w gw'~3e

N$U$FS._{b0 wget -r http://place.your.url/here
Pv'?0_?Mt!s7T|0 这个命令会按照递归的方法,下载服务器上所有的目录和文件,实质就是下载整个网站。这个命令一定要小心使用,因为在下载的时候,被下载网站指向的所有地址 同样会被下载,因此,如果这个网站引用了其他网站,那么被引用的网站也会被下载下来!基于这个原因,这个参数不常用。可以用-l number参数来指定下载的层次。例如只下载两层,那么使用-l 2。
Bx8A#G&Y:D6h]j&Q0X0
6gqo-T0N d4D'zB0 要是您想制作镜像站点,那么可以使用-m参数,例如:wget -m http://place.your.url/here
W)J*{B f0 这时wget会自动判断合适的参数来制作镜像站点。此时,wget会登录到服务器上,读入robots.txt并按robots.txt的规定来执行。51Testing软件测试网+T&Q6u?,q7QR,o

N[8L`u-kH0 2、断点续传。51Testing软件测试网8n'}?JMi/}1Lm

gL H v%h?0
Y(PAv.lJv0 当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完,连接就已经被切断,此时就需要断点续传。wget的断点续传是自动的,只需要使用-c参数,例如:51Testing软件测试网L K,u2m?~3p
wget -c http://the.url.of/incomplete/file
9b"_;Z9ls||Z.Ujv)T^0 使用断点续传要求服务器支持断点续传。-t参数表示重试次数,例如需要重试100次,那么就写-t 100,如果设成-t 0,那么表示无穷次重试,直到连接成功。-T参数表示超时等待时间,例如-T 120,表示等待120秒连接不上就算超时。51Testing软件测试网W9b?] [
51Testing软件测试网e ]Z-kt P&i)f
3、批量下载。51Testing软件测试网/U3d&PD6A|
51Testing软件测试网^b&m/w4nv6A)X6D

/j0Tu.|D+vB0 如果有多个文件需要下载,那么可以生成一个文件,把每个文件的URL写一行,例如生成文件download.txt,然后用命令:wget -i download.txt51Testing软件测试网/u jvrMz7mK"C
这样就会把download.txt里面列出的每个URL都下载下来。(如果列的是文件就下载文件,如果列的是网站,那么下载首页)51Testing软件测试网I!G e? PJ

(XNsVJ/?SC8D0 4、选择性的下载。
^Fq:e+Vh0Q a+cV0 51Testing软件测试网5Q"J%|sVY

9Omj-g B:c0 可以指定让wget只下载一类文件,或者不下载什么文件。例如:
1Z"G {3Z'h0E0 wget -m --reject=gif http://target.web.site/subdirectory51Testing软件测试网,c/NT'os.i e
表示下载http://target.web.site/subdirectory,但是忽略gif文件。--accept=LIST 可以接受的文件类型,--reject=LIST拒绝接受的文件类型。51Testing软件测试网5U!w.D2S @!? D&O

#F4uH1J"a!o0 5、密码和认证。51Testing软件测试网&RiK JI

9H!eV n M3b:Z4b0
m;X5To\k0 wget只能处理利用用户名/密码方式限制访问的网站,可以利用两个参数:
R] `-P J W+q0 --http-user=USER设置HTTP用户51Testing软件测试网?"Pl3Z4TqL.`/g
--http-passwd=PASS设置HTTP密码51Testing软件测试网r2SojL.ST)V v
对于需要证书做认证的网站,就只能利用其他下载工具了,例如curl。51Testing软件测试网Vg$a!R0}H

5t\g/kK3r B+bN0 6、利用代理服务器进行下载。51Testing软件测试网DAm7}F
51Testing软件测试网Bq9G8^/p

ip!td"]zu,k0 如果用户的网络需要经过代理服务器,那么可以让wget通过代理服务器进行文件的下载。此时需要在当前用户的目录下创建一个.wgetrc文件。文件中可以设置代理服务器:
-u a [)w7x.V0 http-proxy = 111.111.111.111:8080
u9V+y Y7[E0~0 ftp-proxy = 111.111.111.111:808051Testing软件测试网6hUZ)V Qxg#t6fa
分别表示http的代理服务器和ftp的代理服务器。如果代理服务器需要密码则使用:51Testing软件测试网U9u-V,Ux(?ze
--proxy-user=USER设置代理用户
+]3Sf"RM0T'h*R4|0 --proxy-passwd=PASS设置代理密码
+`0b0Og C0 这两个参数。
,kG3sP'MQdZ)C0 使用参数--proxy=on/off 使用或者关闭代理。
U,O?)[e4?;D0 wget还有很多有用的功能,需要用户去挖掘。
7[v9LU&^y0 51Testing软件测试网{ @f"R'Bz
例子:51Testing软件测试网8M Z8Ma%|-nk4{'` U
可根据需要选择用下面的参数:
? bjw:N#cj&Y0 $ wget -c -r -nd -np -k -L -p -A c,h www.xxx.org/pub/path/
F5NT l8yI$T0
H2p f0z%umuVr7q {0 -c   断点续传51Testing软件测试网Q*b#m3mR
-r   递归下载,下载指定网页某一目录下(包括子目录)的所有文件
k,B'W Mt0 -nd 递归下载时不创建一层一层的目录,把所有的文件下载到当前目录
ET8f/SBs2O0Zj0 -np 递归下载时不搜索上层目录,如wget -c -r www.xxx.org/pub/path/51Testing软件测试网&i fld ]K
没有加参数-np,就会同时下载path的上一级目录pub下的其它文件
L-~ J[Kw3f8f0 -k   将绝对链接转为相对链接,下载整个站点后脱机浏览网页,最好加上这个参数51Testing软件测试网jp!V%t?)X
-L   递归时不进入其它主机,如wget -c -r www.xxx.org/ 如果网站内有一个这样的链接:
.nvK ]e%o"k0W0 www.yyy.org,不加参数-L,就会像大火烧山一样,会递归下载www.yyy.org网站51Testing软件测试网4jN P~u {7H+O!f9i
-p   下载网页所需的所有文件,如图片等51Testing软件测试网lc#YT8e5fvP/G
-A   指定要下载的文件样式列表,多个样式用逗号分隔51Testing软件测试网5[j$a)K?IA!vuD
-i   后面跟一个文件,文件内指明要下载的URL
)qVvA@ @b0
7u9riW0hG6]Vg0
6I+eI CS/k0 附录:
)L4t wF$JT(Q*y'P%A0
|T Qz'~1I;M4H0 命令格式:
S$]6s ? a*mf:v0 wget [参数列表] [目标软件、网页的网址]51Testing软件测试网Ki| Q vnE

7Qh&]8Q)OU2X xl0 -V 版本信息
#t&F zPq K0
b1D,}`xbLA4@0 -h 帮助信息
Yc$g2mh [?/b0
Q;dCY!T \ O;F)O*\0 -b 后台执行Wget
3Q bSx[!o/e0
2{KBe e9|l0 -o filename 把记录放在文件filename51Testing软件测试网l4e^d`va7v |

c@Tf+_'Jb2u0 -a filename 把记录附加在文件filename51Testing软件测试网m{ f3NP'duL

0h9F0~HT@0 -d 显示调试信息51Testing软件测试网8C&f8U!a4\ Y \`
51Testing软件测试网_'W iv_0QKbJ
-q 无输出下载方式
P4D0Q/E~1L#k~a0 51Testing软件测试网t4sJ*RV)Y_N0M
-v 详细的屏幕输出(默认)51Testing软件测试网|.ndEA4j v

6Eb5W"Y Btr0 -nv 简单的屏幕输出
A bW1@|eG0
4x {M"To0 -i inputfiles 从文本文件内读取地址列表51Testing软件测试网~]0d5xI+E T sy0`C

5i]vhQlE M6DSu0 -F forcehtml 从html文件内读取地址列表51Testing软件测试网~c)Y4\E.s

(`m!s~U$NZ7u A8D0 -t number number次重试下载(0时为无限次)
TJFPzI*?(}0 51Testing软件测试网6V+F6RA+D:t
-O output document file 写文件到文件51Testing软件测试网,k~O%Y0_

-F3e-u g(C B,Y0 -nc 不覆盖已有的文件
;X holB0 51Testing软件测试网 NW ^j m6dy?5m'w
-c 断点下传51Testing软件测试网&_i%V_$K&O G

b0P ]!P7rCN/d8n0 -N 时间时间戳。该参数指定wget只下载更新的文件,也就是说,与本地目录中的对应文件的长度和最后修改日期一样的文件将不被下载。51Testing软件测试网 G.a X!AR3o+J
51Testing软件测试网dWy;\g
-S 显示服务器响应
.in.n-T$?-T0
Y.E)w^O vOYDRO0 -T timeout 超时时间设置(单位秒)51Testing软件测试网&aLBm feS'?
51Testing软件测试网3G4u)^"Hx7p;G
-w time 重试延时(单位秒)
9Z.b,]5fyXC0 51Testing软件测试网 Y x bA.Q Y%Vr
-Y proxy=on/off 是否打开代理51Testing软件测试网2n9h@/g2XB+Hts
51Testing软件测试网)n P!s/J(F]
-Q quota=number 重试次数51Testing软件测试网0W o"jo,nC](L#I

:}P t+y6G0 目录:51Testing软件测试网C6nW9{0_)\

_\U5LN a5O v0 -nd --no-directories 不建立目录.
R Ts v;NIt#^0 51Testing软件测试网?D"Tx%N9bH
-x, --force-directories 强制进行目录建立的工作.
zzG Cb"K;AW0 51Testing软件测试网A.J,c3~ ~o_#Z
-nH, --no-host-directories 不建立主机的目录.
TcS_T+Jx0
A O8v)X5O"A;USku0 -P, --directory-prefix=PREFIX 把档案存到 PREFIX/...
gh3i Gr0 51Testing软件测试网)mc2vQ5d
--cut-dirs=NUMBER 忽略 NUMBER 个远端的目录元件.51Testing软件测试网*F ?j0ac9Y6O+_

o/iN9JO0Cx0 HTTP 选项:51Testing软件测试网1hW!X%hX:v&FP

(M.SZ7dcWM0 --http-user=USER 设 http 使用者为 USER.
D\V-mQ Axv-Ug9l0
NaF P~(}xSDWVyq0 --http0passwd=PASS 设 http 使用者的密码为 PASS.51Testing软件测试网K_])d"n-{G{V4N
51Testing软件测试网CM1T#v d `dF
-C, --cache=on/off 提供/关闭快取伺服器资料 (正常情况为提供).51Testing软件测试网%F2J6m$G9Z6}V
51Testing软件测试网U u,|wLBx
--ignore-length 忽略 `Content-Length' 标头栏位.
:h"u|0i&k,m9Y0 51Testing软件测试网+^UF4A9U6v?/e8I
--proxy-user=USER 设 USER 为 Proxy 使用者名称.
4d1X/] cS]Z9@0 51Testing软件测试网.v.^8{!GYLp ?
--proxy-passwd=PASS 设 PASS 为 Proxy 密码.51Testing软件测试网![2dsN%cRa*g

*n|K'w8E:d3N?0q0 -s, --save-headers 储存 HTTP 标头成为档案.
xb-O%uq)o&mz0
lpt*?l!N]:U3b'A`0 -U, --user-agent=AGENT 使用 AGENT 取代 Wget/VERSION 作为识别代号.51Testing软件测试网#w |#v8^*A0S
51Testing软件测试网u5p7F2sdO D
FTP 选项:51Testing软件测试网J6I,O R#W-{U-P
51Testing软件测试网IqG&x2Pq G&y}
--retr-symlinks 取回 FTP 的象徵连结.
D7n%G'i-] yW0 51Testing软件测试网Dl6nT\"qD'f mM@
-g, --glob=on/off turn file name globbing on ot off.
jgBa f0
7El!O&q/` }7C#B0 --passive-ftp 使用 "passive" 传输模式.51Testing软件测试网~G Q5ZM,\
51Testing软件测试网\3i L6wk
使用递回方式的取回:
*RL@6g\$nqh v0
!c sk[fa9Zx0 -r, --recursive 像是吸入 web 的取回 -- 请小心使用!.
tLRC AP%F~0
]S[0a,U K/EOo0 -l, --level=NUMBER 递回层次的最大值 (0 不限制).51Testing软件测试网 lL)bY/Cd!TT
51Testing软件测试网(Iy+fmB
--delete-after 删除下载完毕的档案.
h;e Q8hFd+m[0 51Testing软件测试网4lT?O2ny b T,@
-k, --convert-links 改变没有关连的连结成为有关连.
d ot!| `\hv#dg0
F"x-L/Sf,u6i I4C0 -m, --mirror 开启适合用来映射的选项.
)qw7[-y @5y6y Z0
W9K0] ~/~?9m+R U0 -nr, --dont-remove-listing 不要移除 `.listing' 档.
_/Xr)y!S3B0
y'E9k?g0 递回式作业的允许与拒绝选项:51Testing软件测试网2PM6}@U*e0j ED

aavMCE(X0 -A, --accept=LIST 允许的扩充项目的列表
#z6Hq:m2\LB4g0 51Testing软件测试网.oL1r*h.U%{
. -R, --reject=LIST 拒绝的扩充项目的列表.
:@n1Ob;z1C0
W~)J+?!h0 -D, --domains=LIST 允许的网域列表.51Testing软件测试网7n FoM/TF

Xye0|'U bTA)R0 --exclude-domains=LIST 拒绝的网域列表 (使用逗号来分隔).51Testing软件测试网2sZ"u:O/~3hV {
51Testing软件测试网*X/kZ%B,Y-F Y2[3\u
-L, --relative 只跟随关联连结前进.51Testing软件测试网 g["a"R2iK
51Testing软件测试网a _;Rw%z1Qt8]0uL
--follow-ftp 跟随 HTML 文件里面的 FTP 连结.51Testing软件测试网n'GS1b)o-m4I't
51Testing软件测试网#q"f1|CS dS
-H, --span-hosts 当开始递回时便到外面的主机.
/H2v"v5{j0
V y1y(W,P0 -I, --include-directories=LIST 允许的目录列表.51Testing软件测试网qOQo)w2Tj7d _
51Testing软件测试网B mFM j/?};i ^"D
-X, --exclude-directories=LIST 排除的目录列表.
C'lK0H&W)Ch"_g+J}0 51Testing软件测试网C3g%C \p
-nh, --no-host-lookup 不透过 DNS 查寻主机.
w$[|8@ k&cA*{0
1e6vq(N @/~ Z0 -np, --no-parent 不追朔到起源目录.

TAG:

我来说两句

(可选)

Open Toolbar