Wget 例子

来自艾毕思知识库
跳转至: 导航搜索

在使用cURL获取需要的文件有困难时,可以用wget试试。

下载单个文件

$ wget http://www.ibssz.com

获取并按原名保存该URL的文件,并在标准输出中显示状态和结果。

--2015-01-07 16:00:52--  http://www.ibssz.com/
Resolving www.ibssz.com... 121.37.63.115
Connecting to www.ibssz.com|121.37.63.115|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’

    [  <=>                                  ] 23,318      30.3KB/s   in 0.8s   

2015-01-07 16:00:59 (30.3 KB/s) - ‘index.html’ saved [23318]

$ wget -O wiki_index.html http://www.ibssz.com/wiki

将指定URL保存为-O参数携带的文件名。上例将 http://www.ibssz.com/wiki/首页 页面下载后保存在wiki_index.html文件中。

wget会自动重定向可能存在跳转的链接。

下载多个文件

首先创建一个包含所有需要下载的文件或URL列表的文件

$ cat > download_list.txt
http://www.ibssz.com/wiki/首页
http://www.ibssz.com/wiki/FreeBSD启动_停止_重启网络服务
...

^C结束输入

把该文件作为-i参数值下载:

wget -i download_list.txt

会连续下载“首页”和“FreeBSD启动_停止_重启网络服务”两个页面文件。

整站下载

$ wget --mirror -p --convert-links -P ./LOCAL_DIR SITE_URL

参数说明:

  • --mirror 使用镜像模式
  • -p 下载所有可能需要的文件
  • --convert-links 使下载后的本地文件中超链接有效,可以在本地浏览
  • -P 下载文件存放目录
  • SITE_URL 需要镜像的网站URL

比如: $ wget --mirror -p --convert-links -P ./local_ibssz http://www.ibssz.com

将镜像www.ibssz.com网站,并将下载的文件保存在当前目录的local_ibssz文件夹中,下载完成后可以在local_ibssz文件夹中进行本地的浏览。

对于现在的动态网站和非英语网站,wget的链接转换极有可能失效,但依然是一个镜像网站的好方法

选择性下载

$ wget -r -A .pdf http://www.ibssz.com/

-r -A参数指定下载的文件类型,其中-r表示递归下载,-A指定需要的文件名后缀(或带有通配符的文件名,如open*.txt)。上例下载ibssz.com中所有的pdf文件。

提示:虽然该命令只下载指定的文件,但依然会根据访问结果在本地建立对应的目录结构。

限速下载

$ wget --limit-rate=1k http://www.ibssz.com/wiki/首页

对于大文件下载可能会占用全部带宽,--limit-rate可限制平均下载速度,上例每秒1K字节左右。

续传

$ wget -c http://www.ibssz.com/wiki/首页

下载大文件中断时,可以用-c参数尝试断点续传,如果服务器支持的话~

如果重复下载而没有使用续传,wget会在重复文件名后加上 .1,如果.1文件存在(多次下载),则递增.2, .3 ...

伪装下载

一些时候,网站会屏蔽wget的访问请求,在使用wget下载被拒绝后,可以尝试伪装HTTP请求头再试。

$ wget --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36" http://www.ibssz.com

失败重试次数

当目标页面存在不能访问的链接内容时,比如facebook, google+这类社交能力部分,wget会多次重试并且超时失败,影响正常的下载。

可以通过增加--tries=n参数来减少失败重试的次数。

$ wget --tries=1 http://www.ibssz.com

在碰到下载失败的情况下,只进行一次重试。