学习wget
- GNU Wget is a free utility for non-interactive download of files from the Web. It supports
HTTP, HTTPS, and FTP protocols, as well as retrieval through HTTP proxies.
Wget is non-interactive, meaning that it can work in the background, while the user is not
logged on. This allows you to start a retrieval and disconnect from the system, letting Wget
finish the work. By contrast, most of the Web browsers require constant user's presence,
which can be a great hindrance when transferring a lot of data.
Wget can follow links in HTML, XHTML, and CSS pages, to create local versions of remote web
sites, fully recreating the directory structure of the original site. This is sometimes
referred to as "recursive downloading." While doing that, Wget respects the Robot Exclusion
Standard (/robots.txt). Wget can be instructed to convert the links in downloaded files to
point at the local files, for offline viewing.
Wget has been designed for robustness over slow or unstable network connections; if a download
fails due to a network problem, it will keep retrying until the whole file has been retrieved.
If the server supports regetting, it will instruct the server to continue the download from
where it left off.
- 断点续传。 当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完,连接就已经被切断,此 时就需要断点续传。wget的断点续传是自动的,只需要使用-c参数,例如:
wget的一些命令
wget -c
使用断点续传要求服务器支持断点续传。-t参数表示重试次数,例如需要重试100次,那么就 写-t 100,如果设成-t 0,那么表示无穷次重试,直到连接成功。-T参数表示超时等待时间,例 如-T 120,表示等待120秒连接不上就算超时。
- 批量下载。
如果有多个文件需要下载,那么可以生成一个文件,把每个文件的URL写一行,例如生成文件 download.txt,然后用命令:wget -i download.txt 这样就会把download.txt里面列出的每个URL都下载下来。(如果列的是文件就下载文件,如果列 的是网站,那么下载首页)
- 选择性的下载。
可以指定让wget只下载一类文件,或者不下载什么文件。例如:
wget -m --reject=gif http://target.web.site/subdirectory 表示下载http://target.web.site/subdirectory,但是忽略gif文件。--accept=LIST 可以
接受的文件类型,--reject=LIST拒绝接受的文件类型。
- 密码和认证。
wget只能处理利用用户名/密码方式限制访问的网站,可以利用两个参数: --http-user=USER设置HTTP用户 --http-passwd=PASS设置HTTP密码 对于需要证书做认证的网站,就只能利用其他下载工具了,例如curl。
- 利用代理服务器进行下载。
如果用户的网络需要经过代理服务器,那么可以让wget通过代理服务器进行文件的下载。此 时需要在当前用户的目录下创建一个.wgetrc文件。文件中可以设置代理服务器:
http-proxy = 111.111.111.111:8080 ftp-proxy = 111.111.111.111:8080
分别表示http的代理服务器和ftp的代理服务器。如果代理服务器需要密码则使用:
--proxy-user=USER设置代理用户
--proxy-passwd=PASS设置代理密码
这两个参数。
wget的一些参数
使用参数--proxy=on/off 使用或者关闭代理。 wget还有很多有用的功能,需要用户去挖掘。
- wget的使用格式
- Usage: wget [OPTION]... [URL]...
- 用wget做站点镜像:
wget -r -p -np -k http://dsec.pku.edu.cn/~usr_name/
或者
wget -m http://dsec.pku.edu.cn/~usr_name/
wget --mirror –w 2 –p --HTML-extension –-convert-links – P ~\wget_files\example1 http://www.yourdomain.com
--mirror(-m):指定要做镜像的网站。wget会获取网站的所有链接和相关的文件。如果 本地镜像存在,还会自动覆盖最近的更新。
-w:告诉wget每个请求的间隔时间,这里是2秒。这个不是必需的,当有些站点对请求 间隔有限制时,这个参数就非常有用了。
-p:让wget获取页面上的所有元素,使其能在本地浏览。--mirror参数并不会保证所有的 图片及相关文件都被下载,所以需要加上-p来指定。
--HTML-extension:将所有不是html扩展名的文件都转换成.html。这个参数会 把CGI,ASP,PHP等结尾的文件都转换成html结尾。
-P(prefix folder):指定目标文件夹。
- 在不稳定的网络上下载一个部分下载的文件,以及在空闲时段下载 wget -t 0 -w 31 -c http://dsec.pku.edu.cn/BBC.avi -o down.log &
或者从filelist读入要下载的文件列表
wget -t 0 -w 31 -c -B ftp://dsec.pku.edu.cn/linuxsoft -i filelist.txt -o down.log &
上面的代码还可以用来在网络比较空闲的时段进行下载。我的用法是:在mozilla中将不方便当时 下载的URL链接拷贝到内存中然后粘贴到文件filelist.txt中,在晚上要出去系统前执行上面代码 的第二条。
- 使用代理下载
wget -Y on -p -k https://sourceforge.net/projects/wvware/
代理可以在环境变量或wgetrc文件中设定
在环境变量中设定代理
export PROXY=http://211.90.168.94:8080/ # 在~/.wgetrc中设定代理
http_proxy =
ftp_proxy = http://proxy.yoyodyne.com:18023/
- wget各种选项分类列表 * 启动