Chinaunix首页 | 论坛 | 博客
  • 博客访问: 115870
  • 博文数量: 38
  • 博客积分: 2111
  • 博客等级: 大尉
  • 技术积分: 395
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-06 13:04
文章分类

全部博文(38)

文章存档

2012年(4)

2010年(34)

我的朋友

分类: LINUX

2010-05-17 17:04:28

2. Wget下载文件
  使用方法:
  wget的使用形式是:
  wget [参数列表] URL
  首先来介绍一下wget的主要参数:
  · -b:让wget在后台运行,记录文件写在当前目录下”wget-log”文件中;
  · -t [nuber of times]:尝试次数,当wget无法与服务器建立连接时,尝试连接多少次
  。比如”-t
  120″表示尝试120次。当这一项为”0″的时候,指定尝试无穷多次直到连接成功为止,这个
  设置非常有用,当对方服务器突然关机或者网络突然中断的时候,可以在恢复正常后继续
  下载没有传完的文件;
  · -c:断点续传,这也是个非常有用的设置,特别当下载比较大的文件的时候,如果中
  途意外中断,那么连接恢复的时候会从上次没传完的地方接着传,而不是又从头开始,使
  用这一项需要远程服务器也支持断点续传,一般来讲,基于UNIX/LinuxWeb/FTP服务器
  都支持断点续传;
  · -T [number of seconds]:超时时间,指定多长时间远程服务器没有响应就中断连接
  ,开始下一次尝试。比如”-T
  120″表示如果120秒以后远程服务器没有发过来数据,就重新尝试连接。如果网络速度比
  较快,这个时间可以设置的短些,相反,可以设置的长一些,一般最多不超过900,通常
  也不少于60,一般设置在120左右比较合适;
  · -w [number of seconds]:在两次尝试之间等待多少秒,比如”-w 100″表示两次尝试
  之间等待100秒;
  · -Y on/off:通过/不通过代理服务器进行连接;
  · -Q [byetes]:限制下载文件的总大小最多不能超过多少,比如”-Q2k”表示不能超过2K
  字节,”-Q3m”表示最多不能超过3M字节,如果数字后面什么都不加,就表示是以字节为单
  位,比如”-Q200″表示最多不能超过200字节;
  · -nd:不下载目录结构,把从服务器所有指定目录下载的文件都堆到当前目录里;
  · -x:与”-nd”设置刚好相反,创建完整的目录结构,例如”wget -nd
  将创建在当前目录下创建””子目录,然后按照服务器
  实际的目录结构一级一级建下去,直到所有的文件都传完为止;
  · -nH:不创建以目标主机域名为目录名的目录,将目标主机的目录结构直接下到当前目
  录下;
  · –http-user=username
  · –http-passwd=password:如果Web服务器需要指定用户名和口令,用这两项来设定;
  · –proxy-user=username
  · –proxy-passwd=password:如果代理服务器需要输入用户名和口令,使用这两个选项
  ;
  · -r:在本机建立服务器端目录结构;
  · -l [depth]:下载远程服务器目录结构的深度,例如”-l 5″下载目录深度小于或者等
  于5以内的目录结构或者文件;
  · -m:做站点镜像时的选项,如果你想做一个站点的镜像,使用这个选项,它将自动设
  定其他合适的选项以便于站点镜像;
  · -np:只下载目标站点指定目录及其子目录的内容。这也是一个非常有用的选项,我们
  假设某个人的个人主页里面有一个指向这个站点其他人个人主页的连接,而我们只想下载
  这个人的个人主页,如果不设置这个选项,甚至有可能把整个站点给抓下来,这显然是
  我们通常不希望的;
  ü 如何设定wget所使用的代理服务器
  wget可以使用用户设置文件”.wgetrc”来读取很多设置,我们这里主要利用这个文件来是
  设置代理服务器。使用者用什么用户登录,那么什么用户主目录下的”.wgetrc”文件就起
  作用。例如,”root”用户如果想使用”.wgetrc”来设置代理服务器,”/root/.wgert”就起
  作用,下面给出一个”.wge
  trc”文件的内容,读者可以参照这个例子来编写自己的”wgetrc”文件:
  http-proxy = 111.111.111.111:8080
  ftp-proxy = 111.111.111.111:8080
  这两行的含义是,代理服务器IP地址为:111.111.111.111,端口号为:80。第一行指定
  HTTP协议所使用的代理服务器,第二行指定FTP协议所使用的代理服务器。
  第二篇:
  $ wget –help
  GNU Wget 1.9.1,非交互式的网络文件下载工具。
  用法: wget [选项]… [URL]…
  长选项必须用的参数在使用短选项时也是必须的。
  启动:
  -V, –version      显示 Wget 的版本并且退出。
  -h, –help       打印此帮助。
  -b, -background     启动后进入后台操作。
  -e, -execute=COMMAND  运行‘.wgetrc’形式的命令。
  日志记录及输入文件:
  -o, –output-file=文件   将日志消息写入到指定文件中。
  -a, –append-output=文件  将日志消息追加到指定文件的末端。
  -d, –debug        打印调试输出。
  -q, –quiet        安静模式(不输出信息)
  -v, –verbose        详细输出模式(默认)
  -nv, –non-verbose     关闭详细输出模式,但不进入安静模式。
  -i, –input-file=文件   下载从指定文件中找到的 URL
  -F, –force-html      HTML 方式处理输入文件。
  -B, –base=URL       使用 -F -i 文件选项时,在相对链接前添加指定的 URL
  下载:
  -t, –tries=次数       配置重试次数(0 表示无限)。
  –retry-connrefused   即使拒绝连接也重试。
  -O  –output-document=文件  将数据写入此文件中。
  -nc, –no-clobber       不更改已经存在的文件,也不使用在文件名后
  添加 .## 为数字)的方法写入新的文件。
  -c, –continue        继续接收已下载了一部分的文件。
  –progress=方式     选择下载进度的表示方式。
  -N, –timestamping      除非远程文件较新,否则不再取回。
  -S, –server-response    显示服务器回应消息。
  –spider         不下载任何数据。
  -T, –timeout=秒数      配置读取数据的超时时间 (秒数)
  -w, –wait=秒数       接收不同文件之间等待的秒数。
  –waitretry=秒数     在每次重试之间稍等一段时间 ( 1 秒至指定的 秒数不等)
  –random-wait      接收不同文件之间稍等一段时间( 0 秒至 2*WAIT 秒不等)
  -Y, –proxy=on/off      打开或关闭代理服务器。
  -Q, –quota=大小       配置接收数据的限额大小。
  –bind-address=地址   使用本机的指定地址 (主机名称或 IP) 进行连接。
  –limit-rate=速率    限制下载的速率。
  –dns-cache=off     禁止查找存于高速缓存中的 DNS
  –restrict-file-names=OS 限制文件名中的字符为指定的 OS (操作系统) 所允许的字符。
  目录:
  -nd –no-directories      不创建目录。
  -x, –force-directories     强制创建目录。
  -nH, –no-host-directories    不创建含有远程主机名称的目录。
  -P, –directory-prefix=名称   保存文件前先创建指定名称的目录。
  –cut-dirs=数目       忽略远程目录中指定数目的目录层。
  HTTP 选项:
  –http-user=用户  配置 http 用户名。
  –http-passwd=密码  配置 http 用户密码。
  -C, –cache=on/off    ()使用服务器中的高速缓存中的数据 (默认是使用的)
  -E, –html-extension   将所有 MIME 类型为 text/html 的文件都加上 .html 扩展文件名。
  –ignore-length    忽略“Content-Length”文件头字段。
  –header=字符串     在文件头中添加指定字符串。
  –proxy-user=用户  配置代理服务器用户名。
  –proxy-passwd=密码  配置代理服务器用户密码。
  –referer=URL     HTTP 请求中包含“RefererURL”头。
  -s, –save-headers    将 HTTP 头存入文件。
  -U, –user-agent=AGENT  标志为 AGENT 而不是 Wget/VERSION
  –no-http-keep-alive 禁用 HTTP keep-alive(持久性连接)。
  –cookies=off     禁用 cookie
  –load-cookies=文件  会话开始前由指定文件载入 cookie
  –save-cookies=文件  会话结束后将 cookie 保存至指定文件。
  –post-data=字符串  使用 POST 方法,发送指定字符串。
  –post-file=文件   使用 POST 方法,发送指定文件中的内容。
  HTTPS (SSL) 选项:
  –sslcertfile=文件   可选的客户段端证书。
  –sslcertkey=密钥文件 对此证书可选的密钥文件
  –egd-file=文件    EGD socket 文件名。
  –sslcadir=目录     CA 散列表所在的目录。
  –sslcafile=文件   包含 CA 的文件。
  –sslcerttype=0/1   Client-Cert 类型 0=PEM (默认) / 1=ASN1 (DER)
  –sslcheckcert=0/1   根据提供的 CA 检查服务器的证书
  –sslprotocol=0-3   选择 SSL 协议;0=自动选择,
  1=SSLv2 2=SSLv3 3=TLSv1
  FTP 选项:
  -nr, –dont-remove-listing  不删除“.listing”文件。
  -g, –glob=on/off      设置是否展开有通配符的文件名。
  –passive-ftp      使用被动传输模式。
  –retr-symlinks     在递归模式中,下载链接所指示的文件(连至目录
  则例外)。
  递归下载:
  -r, –recursive     递归下载。
  -l, –level=数字     最大递归深度(inf 0 表示无限)
  –delete-after    删除下载后的文件。
  -k, –convert-links   将绝对链接转换为相对链接。
  -K, –backup-converted  转换文件 X 前先将其备份为 X.orig
  -m, –mirror       等效于 -r -N -l inf -nr 的选项。
  -p, –page-requisites  下载所有显示完整网页所需的文件,例如图像。
  –strict-comments  打开对 HTML 备注的严格(SGML)处理选项。
  递归下载时有关接受/拒绝的选项:
  -A, –accept=列表        接受的文件样式列表,以逗号分隔。
  -R, –reject=列表        排除的文件样式列表,以逗号分隔。
  -D, –domains=列表        接受的域列表,以逗号分隔。
  –exclude-domains=列表    排除的域列表,以逗号分隔。
  –follow-ftp         跟随 HTML 文件中的 FTP 链接。
  –follow-tags=列表      要跟随的 HTML 标记,以逗号分隔。
  -G, –ignore-tags=列表      要忽略的 HTML 标记,以逗号分隔。
  -H, –span-hosts         递归时可进入其它主机。
  -L, –relative          只跟随相对链接。
  -I, –include-directories=列表  要下载的目录列表。
  -X, –exclude-directories=列表  要排除的目录列表。
  -np, –no-parent         不搜索上层目录。
  一个讲解的不错的Wget说明
  wget是一个命令行工具,用于批量下载文件,支持HTTPFTP。究竟比其他的工具好在哪里?看看内容吧
  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为例(例子并不恰当,CTANFTP服务),我们下 载这里面所有的宏包,呵呵
  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-getyum 等)
  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
  
阅读(1749) | 评论(0) | 转发(0) |
0

上一篇:MYSQL 常用命令

下一篇:Vi指令大全

给主人留下些什么吧!~~