wget小tip一则

wget是GNU下的一个非常有用的下载工具,支持各种常用的internet协议。wget是非交互式且基于命令行的,因为不需要图形界面,所以通常适合被脚本使用。今天我需要下载一整个网站,就是使用的wget。这篇提供一点小tip,描述怎么用wget来下载一整个网站。

假设链接是http://www.example.com/subsite,我需要下载这一层及其以下的所有内容 (也就是做一个mirror),应该这样:

wget -r -p -np -k http://www.example.com/subsite

这其中, “-r“就是recursive的意思,当前目录下的所有子目录(及其子目录)都会被访问到。“-p”使得html页链接的图片,声音,stylesheet等相关文件都被下载,以保证该html页的正常显示。“-np”的意思是“no parent”,保证不会去下载起始目录的上层目录的文件。“-k”等价于“–convert-links”,保证了下载后的文件之间的链接可以在本地正常工作。看到一个例子说,你可以简单的使用“wget –mirror http://www.yoursite.com/”来mirror,我还没试过。

如果要下载的网站,是用.htaccess进行访问限制的。就需要用户和密码。这时候要用:

wget -r -p -np -k –user=yourusername –password=yourpassword http://www.example.com/subsite

如果密码种有特殊字符,可能需要用“\”来转义。

如果下载的网站放了”robot.txt“来限制某些部分的访问。就需要wget来ignore这个文件。只需要在你的~/.wgetrc里面加入一行

robots = off

就行了。


Tags:

Related Posts

  • No Related Posts