wget 是一个非常常用的下载命令,但其实 wget 非常强大,这里就列举一些很常用的选项。

下载整站

备份或者下载整站:

wget -r -np http://www.mysite.com/Pictures/
wget -r --no-parent --reject "index.html*" http://www.mysite.com/Pictures/

说明:

  • -r 表示 recursively 递归下载
  • -np 或者 --no-parent 表示不延伸到父目录,当想要下载特定目录下的文件时,记得加上这个选项

当然如果你的目的非常单纯只是想备份网站,之前也写过一篇 Httrack 备份全站 的文章。

下载特定文件或者忽略特定文件

使用 -A 或者 -R

wget -A jpg,pdf http://site
wget --accept jpg,pdf http://site

wget -R "index.html" http://site

说明:

  • -A 或者 --accept 后面接逗号分割的后缀或者模式,表示下载接受的文件格式,或者符合正则表达式的内容
  • -R 或者 --reject 表示不下载匹配的

需要注意的是如果书写正则表达式,那么需要用双引号。

路径乱码

在使用 wget 备份网站目录时可能遇到网站路径编码下载到本地之后乱码的情况,这个时候需要使用 --restrict-file-names=nocontrol

镜像网站

有些时候可能要离线文档用来在本地浏览,这个时候需要用到 -k

wget --mirror --convert-links --adjust-extension --page-requisites
--no-parent http://example.org
wget -mkEpnp http://example.org

说明:

  • -m 或者 --mirror 镜像网站,这个选项会开启递归和时间戳,并且保持目录结构,等效于 -r -N -l inf --no-remove-listing
  • -k 或者 --convert-links 表示将连接转成 localhost,方便本地浏览
  • -E 或者 --adjust-extension 表示会根据文件的 MIME 类型,将一些文件调整为 HTML 等等后缀,方便在不同的 WEB 服务器中托管
  • -p 或者 --page-requisites 会将任何 HTML 页面显示需要的资源都下载下来,包括 images,sounds,css,js 等等

限制网速

wget 使用选项 --limit-rate 来限制速度:

wget --limit-rate=423k

单位是 bytes per second,如果要表示 kiloBytes,在结尾加上 k .

自定义重试次数

使用 --tries=70 来自定义重试次数,默认情况下 wget 会重试 20 次。