Chinaunix首页 | 论坛 | 博客
  • 博客访问: 420832
  • 博文数量: 78
  • 博客积分: 1527
  • 博客等级: 上尉
  • 技术积分: 830
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-27 20:57
文章分类

全部博文(78)

文章存档

2011年(1)

2008年(12)

2007年(53)

2006年(12)

我的朋友

分类: LINUX

2006-05-16 21:04:41

 

      wget是一个命令行工具,用于批量下载文件,支持HTTP和FTP。究竟比其他的工具好在哪里?看看内容吧 :)
      wget基本上所有的Linux版本都自己带了,但是有多少人在用呢?呵呵,如果你没有用过,不妨试试。Windows下面的用户可以使用GNUwin32的项目,wget,基本功能完全一致。好吧,我们来以几个简单的例子看看wget的威力。
      如果我们想下载ftp里面某个目录里面的所有文件,我们也可以不用ftp这个笨蛋,呵呵,可以享受cute ftp等图形化工具的拖一个目录的轻松了。如
      wget -r
      呵呵,等吧!下完了,发觉有些不对劲,怎么出来个10.8.8.8的目录,进去看看,又是一个movie,哦,wget将目录结构和网站标题都给记录下来了,不要??没有问题!比如说还是这个例子
      wget -r -nd
      结果什么目录都没有了,faint!怎么会这样?呵呵,你如果想要这样就让它这样吧,否则使用
      wget -r -nH
      恩?movie也不要?OK,那就这样
      wget -r -nH --cut-dirs=1
      这有什么用啊?cuteftp比他好用多了,而且,你这断了线能连吗?呵呵,不好意思,可以连
      wget -c -r -nH --cut-dirs=1

      但是cuteftp能做下面的事情吗?比如,现在很多网站使用Apache建站,并不提供ftp服务,但是Apache有一个indexing功能,可以
      提供一个类似于ftp的界面,好多文件我想下啊,怎么办?由于是HTTP协议,CuteFTP无能为力了,倒是flash get等有什么get
      all这种功能,不知道他们对于目录处理怎么样。但是wget一点问题都没有,不信?我们拿CTAN为例(例子并不恰当,CTAN有FTP服务),我们下
      载这里面所有的宏包,呵呵
      wget -r -k
      -k表示将连接转换为本地连接。但是现在同样有上面的问题啊,那就把你需要的加上吧,另外也许你根本不需要向下走那么多层,比如,我们就要到第二层,那么
      wget -r -l2 -k
      现在新的问题是,由于网页有一个排序功能,很讨厌,因为下载的时候把网页重复了好多次,那么我们可使用-A和-R开关控制下载类型,并且可以使用通配符,呵呵,现在随心所欲了吧
      wget -r -R ".htm\?*" -k
      这次没有那种网页了吧?-R的意义在于拒绝下载匹配类型的文件,-A表示仅仅接受的文件类型,如-A
      "*.gif"将仅下载gif图片,如果有多个允许或者不允许,可以使用,分开。
      那么,我们现在在使用代理服务器,怎么办呢?呵呵,很高兴你选择了wget,你可以使用它的配置文件,环境变量来利用代理。这里推荐使用环境变量,如在
      bash里面我们可以把天天用的proxy加到.bash_profile里面,这是Linux标准写法(很多软件都用的,什么apt-get,yum等
等)
      export http_proxy=
      然后,proxy就默认打开了,如果需要暂时关闭,可以使用
      wget --proxy=off -r -k
      当然,写一个.wgetrc文件也可以,该文件可以从/usr/local/etc里面找到,里面有很详细的注释,我就不多说了。
      下载网页的时候比较麻烦的事情是,有的网页被同时指向了很多遍,那么为了避免多次下载,我们使用
      wget -nc -r -k
      可以避免这件事情。为了不被有的连接指向非内层目录,我们还应该加上
      wget -nc -np -r -k
      避免下载非该目录里面的文件,这也避免了到不同的host上面去。当然,如果你希望有这个功能,在多个host之间跳来跳去的下载,可以使用
      wget -nc -np -H -r -k
      使得可以在多个host之间span,同时-I和-X可以使得我们仅仅跟踪某些目录或者不跟踪某些目录。如果某些HTML里面你需要的东西不是由这种东西作出来的,你就得使用--follow-tags和--ignore-tags了。
      嘿,我有个文件里面都是连接,怎么办?要是不是html你只需要
      wget -i your.file
      如果是,那也不繁
      wget -F -i your.file
阅读(1412) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~