为什么要说这个题目?开心
因为software engineer常常在web上搜到很多代码,搜到了就想下载。它们都是WEB上以文件夹的方式存放的。 有什么工具能下载整个目录?很多软件效果都不好。由于每个WEB页面上都有"Parent Directory",这些工具总是嵌套下载。 望知道的人告知软件名称(windows和linux下的都要) 有两个软件,最简单的就是最好的,curl和wget
curl和wget就是linux和windows下都能用的两款专门下代码的软件(我这样用而已)
先说wget吧。先从网上下一个wget的windows版本。
在windows命令行下敲入如下命令试验下:
wget http://linuxtoy.org/archives/wget-tips.html
爽吧,这样下网页,比在浏览器中点文件网页另存为 还要快呢!
然后试下这句:
wget http://www.koders.com/c/fid080A2AABF191DF0FAD4E1447F9A31173FCD52515.aspx?s=multi-user
奇怪了,http://www.koders.com的网页down下来无法打开?别着急,这个网站本来就提供各个.c文件的下载按钮了。
试下这句:
curl http://www.koders.com/default.aspx?s=multi-user&btn=&la=C&li=*
可以把真个网页代码print下来。
再说curl。curl 是一般linux发行版中都带有的小工具,利用这个工具可以很方便的下载文件,我一般使用这个工具来查看某个页面相应的HTTP头信息,例如: curl -I http://www.71way.com/
-I可以只查看头信息。
在Windows系统中我们也一样可以使用这个工具,如果不需要支持https的话,那直接下载一个可执行文件即可,下载页面是:http://curl.haxx.se/download.html,这个页面最底部有一个Windows下的下载链接,请选择不带SSL的版本,否则还需要安装SSL的支持包。我下载的地址是:
http://curl.haxx.se/download/curl-7.17.0-win32-nossl.zip
解压后,直接进windows命令行cmd,然后cd切换到该zip目录下,执行curl.exe 即可,使用方法跟linux下的完全相同。此命令功能非常强大,又兴趣自己研究一下。
curl一下新浪新闻看看: curl -I http://news.sina.com.cn
以上是说的在windows下运行curl命令,事实上,在linux下也自带有这个命令,使用开关和windows下一样。
上面这个curl是不支持SSL的。当然也有支持SSL的curl版本,用这种版本可以查看以https://开头的网页。如:curl https://www.google.com/
除了curl外,linux下和windows下都可以用来下载网页的还有wget工具
附:wget用法:
最常见的是下载网页:什么参数都不带。
$ wget http://linuxtoy.org/archives/wget-tips.html
Linux 用户来说,几乎每天都在使用它。下面为大家介绍几个有用的 wget 小技巧,可以让你更加高效而灵活的使用 wget。
$ wget -r -np -nd http://example.com/packages/
这条命令可以下载 http://example.com 网站上 packages 目录中的所有文件。其中,-np
的作用是不遍历父目录,-nd
表示不在本机重新创建目录结构。
这个开关相当重要,再举个真刀真枪的例子,
我在code.google.com代码上搜到了一个vc工程,要下载,怎么办?位于下面网页上的四个文件:
http://tcstock.googlecode.com/svn/trunk/build_win_vc6/
就用
-
$ wget -r -np -nd http://tcstock.googlecode.com/svn/trunk/build_win_vc6/
稍候片刻,在我的wget.exe同一个目录下就多出了这四个文件,让你心动的dsw和.h文件都下来了!
再拿这个开源的股票软件举个例子吧:
我们在网上搜到了这个代码,注意到source目录
http://code.google.com/p/tcstock/source/browse/trunk/source/tcdailyviewwgt.cpp
很感兴趣,怎么办?那我们就把它down下来吧!只要下面一句,再加上10分钟时间,就ok了
$ wget -r -np -nd http://code.google.com/p/tcstock/source/browse/trunk/source/
(我是在结尾加了/号的,不知你去掉是不是只下source这个不存在的文件?)等吧,等一会,
我们就可以一窥该开源代码中你想借鉴的奥秘了!...
所以,请记住 wget -r -np -nd 这句话吧。就是r np nd五个字母而已。
$ wget -r -np -nd --accept=iso http://example.com/centos-5/i386/
与上一条命令相似,但多加了一个
--accept=iso
选项,这指示 wget 仅下载 i386 目录中所有扩展名为 iso 的文件。你也可以指定多个扩展名,只需用逗号分隔即可。$ wget -i filename.txt
此命令常用于批量下载的情形,把所有需要下载文件的地址放到 filename.txt 中,然后 wget 就会自动为你下载所有文件了。
$ wget -c http://example.com/really-big-file.iso
这里所指定的
-c
选项的作用为断点续传。$ wget -m -k (-H) http://www.example.com/
该命令可用来镜像一个网站,wget 将对链接进行转换。如果网站中的图像是放在另外的站点,那么可以使用
-H
选项。