wget 命令使用指南

命令格式

1
wget  [参数]  [目标地址]

常用参数

1
2
3
4
5
6
7
8
9
-A					逗号分隔的可接受的扩展名列表
-r 指定递归下载
-N 只获取比本地文件新的文件
-P 设置文件前缀
-nH 不创建主机目录
--no-parent 不追溯至父目录
--cut-dirs=NUMBER 忽略远程目录中【NUMBER】个目录层
--level=NUMBER 最大递归深度 (inf 或 0 代表无限制,即全部下载)
-i 指定外部文件为下载源,即下载链接从配置文件中获取

其他参数

下载相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-b	后台启动
-o 将日志信息输出到文件
-t 设置重试次数
-nc 不下载已存在文件
-c 断点续传
-O 下载文件重命名
-S, --server-response 打印服务器响应头信息
--spider 不下载任何文件
--limit-rate=RATE 限制下载速率为 [RATE]
--ignore-case 匹配文件/目录时忽略大小写
--user=USER 将 ftp 和 http 的用户名均设置为【USER】
--password=PASS 将 ftp 和 http 的密码均设置为【PASS】
--ask-password 提示输入密码

-A, --accept=XXX,XXX 逗号分隔的可接受的扩展名列表
-R, --reject=XXX,XXX 逗号分隔的要拒绝的扩展名列表
--accept-regex=REGEX 匹配接受的 URL 的正则表达式
--reject-regex=REGEX 匹配拒绝的 URL 的正则表达式
--regex-type=TYPE 正则类型 (posix|pcre)
-D, --domains=LIST 逗号分隔的可接受的域名列表
--exclude-domains=LIST 逗号分隔的要拒绝的域名列表
-I, --include-directories=LIST 允许目录的列表
-X, --exclude-directories=LIST 排除目录的列表
-np, --no-parent 不追溯至父目录

目录相关

1
2
3
4
-nd	不创建目录
-nH 不创建主机目录,如远端ip地址或url组成的目录
-P, --directory-prefix=PREFIX 保存文件到指定的【PREFIX】目录
--cut-dirs=NUMBER 忽略远程目录中【NUMBER】个目录层

HTTP下载相关

1
2
3
4
5
6
--http-user=USER            设置 http 用户名为【USER】
--http-password=PASS 设置 http 密码为【PASS】
--no-cache 不使用服务器缓存的数据。
--default-page=NAME 改变默认页名称 ("index.html")
--no-cookies 不使用 cookies
--save-cookies=FILE 会话结束后保存 cookies 至【FILE】

FTP下载相关

1
2
3
4
5
--ftp-user=USER             设置 ftp 用户名为【USER】
--ftp-password=PASS 设置 ftp 密码为【PASS】
--no-glob 不在 FTP 文件名中使用通配符展开
--preserve-permissions 保留远程文件的权限
--retr-symlinks 递归目录时,获取链接的文件 (非目录)

下载实例

从ftp服务器下载指定类型文件到本地服务器(python 实现)

1
2
# 业务名称 下载IP地址 用户名 密码 下载路径    本地路径 文件后缀 忽略远程目录中目录层级  递归层级
业务名称 1.1.1.1 user123 password123 /REMO/XXXX/ /home/XXXX/ html 3 1
1
2
3
4
5
import os
_, hostip, username, passwd, remotepath, localpath, dot, cut_dir, level = line.strip('\n').split(' ', 8)
cmd = "wget --ftp-user={} --ftp-password={} -A {} -r --level={} --no-parent -N -nH --cut-dirs={} -P {} ftp://{}/{}".format(username, passwd, newdot, level, cut_dir, localpath, hostip, remotepath)
print(cmd)
os.system(cmd)
都看到这里了,不赏点银子吗^v^