wget
跳转到导航
跳转到搜索
非常稳定的单线程下载工具。图形界面前端有 gwget。不支持 socks 代理,此时可使用 curl 代替,或者使用 proxychains。
常见用法
下载整个站点
wget -T 5 -t 10 -Q 500m -nH -r -E -l inf -k -p -np 'http://www.w3school.com.cn/' -o wget.log
反复重试
wget -T5 -t100 -c URL
也可以考虑加上 --no-use-server-timestamps
。
但是,在「无法建立 SSL 连接」时依然会中断。
选项
网络
wget 默认的超时是 900 秒的读取超时。设置超时时间时可以使用小数。
应用协议相关
-U string
,--user-agent=string
- 指定 UserAgent
-S, --server-response
- 打印 HTTP 的响应头或者 FTP 的服务器响应
--content-on-error
- 即使遇到 HTTP 错误,也仍然下载响应内容。版本 1.14(2011-10-6)添加
批量下载
-i
- 指定包含URL列表的文件
-m
- mirror,可以用来下载 DocBook 制作的文档
-H
- 允许跨域下载
-E
- 修正 HTML 和 CSS[1] 文件的扩展名
-nH
- 不创建以域名命名的目录
--exclude-domains
- 排除指定的域名
编码设置
--local-encoding
和 --remote-encoding
可用来设置编码,它会影响 wget 对 URL 的转换。
文件内容与文件名
--restrict-file-names
- 限制文件名。中文文件名时应将其设为nocontrol,否则会导致转义不该转义的字符
--trust-server-names=on
- 使用重定向后的文件名
--content-disposition=on
- 使用`Content-Disposition`头中的文件名。注意不会解析百分号转义
--delete-after
- 下载后删除文件
--no-check-certificate
- 跳过证书检查(会有警告)
robots.txt
忽略 robots.txt:
wget -e robots=off
配置文件
位于 ~/.wgetrc
,直接写与命令行相同的选项。#
表示注释。
问题处理
文件名含有 query
wget 会将 URL 的 query 部分附加到默认的文件名上。没有选项将其去掉。为去掉它,可修改其源代码的url.c
文件大约第1556行的地方,将相关部分注释掉即可。[2]
参见
外部链接
参考资料
- ↑ 根据 man 文档,CSS 类型在 1.12 版本开始支持
- ↑ wget 默认文件名附加URL查询部分的去除 - 依云's Blog