wget

来自百合仙子's Wiki
跳转到导航 跳转到搜索

非常稳定的单线程下载工具。图形界面前端有 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 秒的读取超时。设置超时时间时可以使用小数。

-T
设置超时时间,包括 DNS 解析、TCP 连接和读取时间。
-t N
重试次数。默认为 20 次。

应用协议相关

-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
修正 HTMLCSS[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]

参见

外部链接

参考资料

  1. 根据 man 文档,CSS 类型在 1.12 版本开始支持
  2. wget 默认文件名附加URL查询部分的去除 - 依云's Blog