wget 是一个强大的非交互式网络下载工具,主要用于从互联网上下载文件。它支持多种协议,包括 HTTP、HTTPS、FTP,并且可以使用 HTTP 代理。wget 特别适合在带宽有限或网络连接不稳定的情况下使用,因为它具有断点续传的功能,可以在中断后继续下载未完成的部分。
基本语法
wget [选项]... [URL]...
主要选项
-b, --background: 在后台运行。-c, --continue: 继续未完成的下载。-p, --page-requisites: 下载页面依赖的其他文件,如图片和样式表。-k, --convert-links: 将远程链接转换为本地链接。-P, --directory-prefix=DIR: 将下载的文件保存在 DIR 目录中。-O, --output-document=FILE: 将输出保存到 FILE 文件中。-U, --user-agent=AGENT: 设置用户代理字符串。-o, --output-file=FILE: 将日志信息保存到 FILE 文件中。-q, --quiet: 静默模式,减少输出信息。-r, --recursive: 递归下载,创建远程目录的本地镜像。-l, --level=N: 递归下载时的最大深度。-m, --mirror: 创建一个完整的远程目录镜像。-e, --restrict-file-names=MODE: 更改文件名编码方式。-t, --tries=N: 尝试下载的最大次数。-w, --wait=SECONDS: 下载文件之间等待 SECONDS 秒。-T, --timeout=SECONDS: 连接超时时间。-nv, --no-check-certificate: 忽略 SSL 证书验证。-e, --referer=URL: 设置引用 URL。-e, --header=HEADER: 添加额外的 HTTP 请求头。-u, --http-user=USER: HTTP 用户名。-p, --http-password=PASS: HTTP 密码。
使用示例
-
下载单个文件:
wget http://example.com/file.zip -
继续下载已部分完成的文件:
wget -c http://example.com/largefile.iso -
下载整个网站(递归下载):
wget -r -p -k http://example.com/ -
限制递归深度:
wget -r -l 2 http://example.com/ -
将所有链接转换为相对于本地目录:
wget -r -k -p http://example.com/ -
下载文件并保存到特定目录:
wget -P /path/to/download http://example.com/file.pdf -
将输出保存到文件中:
wget -O output.txt http://example.com/file.txt -
使用代理服务器下载:
export http_proxy=http://username:password@proxy.example.com:port wget http://example.com/
注意事项
- 使用
wget下载大量文件或整个网站时,应先了解目标服务器的 robots.txt 文件,尊重其规定。 - 在公共或受限网络环境下使用代理时,确保正确设置了代理参数。
- 使用
wget的递归下载功能时,小心不要无限递归,特别是当网站包含循环链接时。 - 在自动化脚本中使用
wget时,注意处理网络波动和文件完整性验证。
wget 是 Linux 和 Unix 系统中的常用工具,也存在 Windows 版本,适用于各种网络管理、自动化下载和镜像构建任务。