
wget是Linux/Unix系统中最流行的命令行下载工具,支持通过HTTP、HTTPS、FTP协议下载文件。与图形界面下载工具相比,wget能够在后台运行、支持断点续传、递归下载整个网站、限速下载等高级功能,非常适合在终端环境或脚本中使用。
wget的设计理念是简单、强大、可脚本化,它能够在网络不稳定的情况下自动重试,支持代理服务器、用户认证、Cookie等特性。掌握wget是进行自动化下载、网站镜像、数据抓取的必备技能。
1. 基本下载
| 命令 | 说明 |
|---|
wget URL | |
wget -q URL | |
wget -nv URL | |
wget -v URL | |
wget -d URL | |
2. 保存选项
| 命令 | 说明 |
|---|
wget -O name.txt URL | |
wget -O - URL | |
wget -P /path/ URL | |
wget --content-disposition URL | |
wget --no-clobber URL | |
wget -nc URL | --no-clobber |
wget --backups=1 URL | |
3. 断点续传与限速
| 命令 | 说明 |
|---|
wget -c URL | |
wget --limit-rate=2m URL | |
wget --limit-rate=500k URL | |
wget -b URL | |
wget -b -o log.txt URL | |
wget --wait=2 URL | |
4. 多文件下载
| 命令 | 说明 |
|---|
wget URL1 URL2 URL3 | |
wget -i urls.txt | |
wget -i - < urls.txt | |
wget --force-html -i list.html | |
5. 递归下载
| 命令 | 说明 |
|---|
wget -r URL | |
wget -r -l 2 URL | |
wget -r --no-parent URL | |
wget -r --accept=jpg,png URL | |
wget -r --reject=mp4,avi URL | |
wget -r -A "*.pdf" URL | |
wget -r --follow-tags=a URL | |
6. 网站镜像
| 命令 | 说明 |
|---|
wget -m URL | |
wget -m -k -p URL | |
wget -m -k -p -E URL | |
wget -m --wait=2 URL | |
wget -m --random-wait URL | |
wget -m -e robots=off URL | |
-m 等效选项:-r -N -l inf --no-remove-listing
7. 认证与授权
| 命令 | 说明 |
|---|
wget --user=USER --password=PASS URL | |
wget --ask-password URL | |
wget --header="Authorization: Bearer TOKEN" URL | |
wget --ftp-user=USER --ftp-password=PASS URL | |
wget --user=USER --password=PASS --auth-no-challenge URL | |
8. 请求头与User-Agent
| 命令 | 说明 |
|---|
wget --header="Key: Value" URL | |
wget --header="Accept: application/json" URL | |
wget -U "CustomAgent/1.0" URL | |
wget --referer=URL URL | |
wget --header="Cookie: name=value" URL | |
9. SSL/TLS选项
| 命令 | 说明 |
|---|
wget --no-check-certificate URL | |
wget --ca-certificate=ca.crt URL | |
wget --certificate=client.crt URL | |
wget --private-key=client.key URL | |
wget --https-only URL | |
wget --secure-protocol=TLSv1_2 URL | |
10. FTP选项
| 命令 | 说明 |
|---|
wget ftp://server/file | |
wget -r ftp://server/dir/ | |
wget --ftp-user=USER --ftp-password=PASS ftp://server/ | |
wget --no-passive-ftp ftp://server/file | |
wget --no-remove-listing ftp://server/dir/ | |
11. 重试与超时
| 命令 | 说明 |
|---|
wget --tries=5 URL | |
wget --retry-connrefused URL | |
wget --waitretry=10 URL | |
wget --timeout=30 URL | |
wget --connect-timeout=10 URL | |
wget --read-timeout=30 URL | |
wget --dns-timeout=5 URL | |
12. 输出与日志
| 命令 | 说明 |
|---|
wget -q URL | |
wget -nv URL | |
wget -o log.txt URL | |
wget -a log.txt URL | |
wget --show-progress -q URL | |
wget --progress=dot URL | |
wget --progress=bar URL | |
13. 时间戳与缓存
| 命令 | 说明 |
|---|
wget -N URL | |
wget --no-cache URL | |
wget --spider URL | |
wget --spider -r URL | |
wget --no-use-server-timestamps URL | |
14. 实用组合模式
| 命令 | 说明 |
|---|
wget -q -O - URL | tar -xzf - -C /path | |
wget -c --limit-rate=1m -P /tmp URL | |
wget -r -np -nH --cut-dirs=2 URL | |
wget -m -k -p --wait=1 -e robots=off URL | |
wget --mirror --convert-links --page-requisites --wait=1 URL | |
wget -i urls.txt -P downloads/ -nc | |
wget --user=USER --ask-password URL 2>&1 | tee download.log | |
15. 常用选项速查
| 选项 | 说明 |
|---|
-O | |
-P | |
-c | |
-q | |
-v | |
-nv | |
-d | |
-i | |
-r | |
-l | |
-m | |
-N | |
-k | |
-p | |
-np | |
-nH | |
-A | |
-R | |
--limit-rate | |
--tries | |
--timeout | |
--user | |
--no-check-certificate | |
--spider | |
16. 故障排查
| 问题 | 解决方法 |
|---|
| 证书验证错误 | 使用--no-check-certificate(临时);更新CA证书 |
| 连接被拒绝 | 检查防火墙;确认服务可用;使用--retry-connrefused |
| 下载速度慢 | 使用--limit-rate限制速度(可能改善稳定性);检查网络 |
| 递归下载过多文件 | 使用-l限制深度;使用--accept/--reject过滤类型 |
| 网站镜像链接失效 | |
| 下载不完整 | |
| 认证失败 | 确认用户名密码;检查认证方式(Basic/Digest/Bearer) |
| 被服务器阻止 | 使用-U修改User-Agent;增加--wait间隔 |
温馨提示: wget是强大的下载工具,建议掌握以下技巧:1)大文件下载使用-c支持断点续传;2)脚本中使用-q静默模式,配合-o记录日志;3)批量下载使用-i从文件读取URL;4)镜像网站时务必使用--wait避免服务器过载;5)下载后验证文件完整性(对比Content-Length或MD5);6)处理敏感数据时避免在命令行暴露密码,使用--ask-password;7)对于需要cookie认证的网站,可先用浏览器获取cookie文件:--load-cookies cookies.txt。对于更复杂的需求(如递归限制、HTTPS证书处理),curl可能是更好的选择。
关注公众号(haopython),请回复: LLTWGET