wget下载资源
比如说要下载好的在线资源,可以用wget命令:
$ wget -r -p -k -np http://tengine.taobao.org/book/
$ wget -r -p -k -np http://light4.github.io/Linux-C/index.html
下载git-pro中文版时,遇到错误: Connecting to |216.34.181.97|:80... failed: Connection refused.
。可能是G F W的作用,因此需要使用代理,只需要设置:
$ export http_proxy='127.0.0.1:8087' #GAE代理
重试则可以下载成功,但是编码错误:
zsh➜ $ wget -r -p -k -np http://git-scm.com/book/zh/起步
--2013-04-08 14:21:43-- http://git-scm.com/book/zh/%E8%B5%B7%E6%AD%A5
正在连接 127.0.0.1:8087... 已连接。
已发出 Proxy 请求,正在等待回应... 200
长度: 17487 (17K) [text/html]
....
加上--restrict-file-names=nocontrol
参数就可以了。
另外在下载learn.jquery.com
完成后,在首页打开event时,链接转换为file:///home/zhaofei/Documents/learn.jquery.com/index.html?page_id=13
, 实际上,浏览器在载入文件时忽略链接中的查询字串(也就是?page_id=13
),因此打开的仍然是index.html。这时候加上--restrict-file-names=windows
,转换为本地连接时将?转换为其他字符。
wget 帮助手册
man wget
wget是免费的网页下载工具,支持HTTP、HTTPS、FTP协议,同时还支持http代理。wget支持递归抓取页面,可以爬取HTML、XHTML、CSS,同时转换页面内链接地址,允许在没网的情况下浏览网站,因此是备份网站的强大工具。 wget遵守Robot Exclusion Standard
(/robots.txt)。
上面各个选项含义:
- -r(–recursive): 递归下载页面,默认深度为5
- -p(–page-requisites): 下载页面中的所有资源,包括图片,声音,css等。
- -k(–convert-links): 下载完成后,转换链接地址,方便本地浏览。
- -np(–no-parent): 递归下载只往下搜索链接,不会下载父目录页面。
- –restrict-file-names=nocontrol: 设置转换链接地址时需要转换的字符集。默认情况下,wget转换系统文件名不允许的字符和不可显示的字符。值可以为unix, windows, nocontrol, ascii, lowercase, and uppercase.
Mac 下可以使用SiteSucker备份网站,SiteSucker简单易用同时又很强大,setting
里面有许多选项可以设置,比如不下载指定文件类型等。
参考
Nginx 开发从入门到精通
How to Fix wget Connection Refused Error when I’m behind a Proxy
解决wget下载文件名乱码的一些方法
Escaping query strings with wget –mirror