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
当下载的路径的一部分与文件重名时,会报pathconf: 不是目录错误。一种解决方案是使用--reject-regex来避免下载重名的部分路径。
反复重试
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