wget

参考:http://apple.stackexchange.com/questions/100570/getting-files-all-at-once-from-a-web-page-using-curl

一份份的下载文件有点麻烦,所以

wget -r -np docs.linuxtone.org/ebooks/SVN/

 

wget -q -O >(cat) http://baidu.com

wget命令会把下载后的文件保存到文件中去, 但是我们可以用上面的命令不让它保存到文件中去, 而是显示出来. wget的”-O”选项后本来应该是一个文件名的参数, 但是我们现在用>(cat)代替, 表示wget下载下来的内容放到一个临时文件中, 然后把这个临时文件名再传给>()里面的cat命令.

 

 

可以看下:

http://stackoverflow.com/questions/19416662/how-to-download-a-file-into-a-directory-using-curl-or-wget

http://unix.stackexchange.com/questions/91798/download-pdf-files-from-using-curl

http://www.thegeekstuff.com/2012/07/wget-curl/

https://groups.google.com/forum/#!topic/weeklybuilds/hPO1w5TlNY4

 

 

 引述自:http://mecland.blog.edu.cn/2010/488651.html

wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。

所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。

wget 可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作”递归下载”。在递归下载的时候,wget 遵循Robot Exclusion标准(/robots.txt). wget可以在下载的同时,将链接转换成指向本地文件,以方便离线浏览。

wget 非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务 器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

wget的常见用法

wget的使用格式

Usage: wget [OPTION]… [URL]…

* 用wget做站点镜像:

wget -r -p -np -k http://dsec.pku.edu.cn/~usr_name/

# 或者

wget -m http://dsec.pku.edu.cn/~usr_name/

* 在不稳定的网络上下载一个部分下载的文件,以及在空闲时段下载

wget -t 0 -w 31 -c http://dsec.pku.edu.cn/BBC.avi -o down.log &

# 或者从filelist读入要下载的文件列表

wget -t 0 -w 31 -c -B ftp://dsec.pku.edu.cn/linuxsoft -i filelist.txt -o down.log &

上面的代码还可以用来在网络比较空闲的时段进行下载。我的用法是:在mozilla中将不方便当时下载的URL链接拷贝到内存中然后粘贴到文件filelist.txt中,在晚上要出去系统前执行上面代码的第二条。

* 使用代理下载

wget -Y on -p -k https://sourceforge.net/projects/wvware/

代理可以在环境变量或wgetrc文件中设定

# 在环境变量中设定代理

export PROXY=http://211.90.168.94:8080/

# 在~/.wgetrc中设定代理

http_proxy = http://proxy.yoyodyne.com:18023/

ftp_proxy = http://proxy.yoyodyne.com:18023/

wget各种选项分类列表

* 启动

-V, –version 显示wget的版本后退出

-h, –help 打印语法帮助

-b, –background 启动后转入后台执行

-e, –execute=COMMAND 执行`.wgetrc’格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc

* 记录和输入文件

-o, –output-file=FILE 把记录写到FILE文件中

-a, –append-output=FILE 把记录追加到FILE文件中

-d, –debug 打印调试输出

-q, –quiet 安静模式(没有输出)

-v, –verbose 冗长模式(这是缺省设置)

-nv, –non-verbose 关掉冗长模式,但不是安静模式

-i, –input-file=FILE 下载在FILE文件中出现的URLs

-F, –force-html 把输入文件当作HTML格式文件对待

-B, –base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀

–sslcertfile=FILE 可选客户端证书

–sslcertkey=KEYFILE 可选客户端证书的KEYFILE

–egd-file=FILE 指定EGD socket的文件名

* 下载

–bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)

-t, –tries=NUMBER 设定最大尝试链接次数(0 表示无限制).

-O –output-document=FILE 把文档写到FILE文件中

-nc, –no-clobber 不要覆盖存在的文件或使用.#前缀

-c, –continue 接着下载没下载完的文件

–progress=TYPE 设定进程条标记

-N, –timestamping 不要重新下载文件除非比本地文件新

-S, –server-response 打印服务器的回应

–spider 不下载任何东西

-T, –timeout=SECONDS 设定响应超时的秒数

-w, –wait=SECONDS 两次尝试之间间隔SECONDS秒

–waitretry=SECONDS 在重新链接之间等待1…SECONDS秒

–random-wait 在下载之间等待0…2*WAIT秒

-Y, –proxy=on/off 打开或关闭代理

-Q, –quota=NUMBER 设置下载的容量限制

–limit-rate=RATE 限定下载输率

* 目录

-nd –no-directories 不创建目录

-x, –force-directories 强制创建目录

-nH, –no-host-directories 不创建主机目录

-P, –directory-prefix=PREFIX 将文件保存到目录 PREFIX/…

–cut-dirs=NUMBER 忽略 NUMBER层远程目录

* HTTP 选项

–http-user=USER 设定HTTP用户名为 USER.

–http-passwd=PASS 设定http密码为 PASS.

-C, –cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许).

-E, –html-extension 将所有text/html文档以.html扩展名保存

–ignore-length 忽略 `Content-Length’头域

–header=STRING 在headers中插入字符串 STRING

–proxy-user=USER 设定代理的用户名为 USER

–proxy-passwd=PASS 设定代理的密码为 PASS

–referer=URL 在HTTP请求中包含 `Referer: URL’头

-s, –save-headers 保存HTTP头到文件

-U, –user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION.

–no-http-keep-alive 关闭 HTTP活动链接 (永远链接).

–cookies=off 不使用 cookies.

–load-cookies=FILE 在开始会话前从文件 FILE中加载cookie

–save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中

* FTP 选项

-nr, –dont-remove-listing 不移走 `.listing’文件

-g, –glob=on/off 打开或关闭文件名的 globbing机制

–passive-ftp 使用被动传输模式 (缺省值).

–active-ftp 使用主动传输模式

–retr-symlinks 在递归的时候,将链接指向文件(而不是目录)

* 递归下载

-r, –recursive 递归下载--慎用!

-l, –level=NUMBER 最大递归深度 (inf 或 0 代表无穷).

–delete-after 在现在完毕后局部删除文件

-k, –convert-links 转换非相对链接为相对链接

-K, –backup-converted 在转换文件X之前,将之备份为 X.orig

-m, –mirror 等价于 -r -N -l inf -nr.

-p, –page-requisites 下载显示HTML文件的所有图片

* 递归下载中的包含和不包含(accept/reject)

-A, –accept=LIST 分号分隔的被接受扩展名的列表

-R, –reject=LIST 分号分隔的不被接受的扩展名的列表

-D, –domains=LIST 分号分隔的被接受域的列表

–exclude-domains=LIST 分号分隔的不被接受的域的列表

–follow-ftp 跟踪HTML文档中的FTP链接

–follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表

-G, –ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表

-H, –span-hosts 当递归时转到外部主机

-L, –relative 仅仅跟踪相对链接

-I, –include-directories=LIST 允许目录的列表

-X, –exclude-directories=LIST 不被包含目录的列表

-np, –no-parent 不要追溯到父目录

问题

在递归下载的时候,遇到目录中有中文的时候,wget创建的本地目录名会用URL编码规则处理。如”天网防火墙”会被存为”%CC%EC%CD%F8%B7%C0%BB%F0%C7%BD”,这造成阅读上的极大不方便。

 

引述自:http://l.51yip.com/search/wget

用法: wget [选项]... [URL]...



长选项所必须的参数在使用短选项时也是必须的。



启动:

  -V,  --version           显示 Wget 的版本信息并退出。

  -h,  --help              打印此帮助。

  -b,  --background        启动后转入后台。

  -e,  --execute=COMMAND   运行一个“.wgetrc”风格的命令。



日志和输入文件:

  -o,  --output-file=FILE    将日志信息写入 FILE。

  -a,  --append-output=FILE  将信息添加至 FILE。

  -d,  --debug               打印大量调试信息。

  -q,  --quiet               安静模式 (无信息输出)。

  -v,  --verbose             详尽的输出 (此为默认值)。

  -nv, --no-verbose          关闭详尽输出,但不进入安静模式。

  -i,  --input-file=FILE     下载本地或外部 FILE 中的 URLs。

  -F,  --force-html          把输入文件当成 HTML 文件。

  -B,  --base=URL            解析与 URL 相关的

                             HTML 输入文件 (由 -i -F 选项指定)。

       --config=FILE         Specify config file to use.



下载:

  -t,  --tries=NUMBER            设置重试次数为 NUMBER (0 代表无限制)。

       --retry-connrefused       即使拒绝连接也是重试。

  -O,  --output-document=FILE    将文档写入 FILE。

  -nc, --no-clobber              skip downloads that would download to

                                 existing files (overwriting them).

  -c,  --continue                断点续传下载文件。

       --progress=TYPE           选择进度条类型。

  -N,  --timestamping            只获取比本地文件新的文件。

  --no-use-server-timestamps     不用服务器上的时间戳来设置本地文件。

  -S,  --server-response         打印服务器响应。

       --spider                  不下载任何文件。

  -T,  --timeout=SECONDS         将所有超时设为 SECONDS 秒。

       --dns-timeout=SECS        设置 DNS 查寻超时为 SECS 秒。

       --connect-timeout=SECS    设置连接超时为 SECS 秒。

       --read-timeout=SECS       设置读取超时为 SECS 秒。

  -w,  --wait=SECONDS            等待间隔为 SECONDS 秒。

       --waitretry=SECONDS       在获取文件的重试期间等待 1..SECONDS 秒。

       --random-wait             获取多个文件时,每次随机等待间隔

                                 0.5*WAIT...1.5*WAIT 秒。

       --no-proxy                禁止使用代理。

  -Q,  --quota=NUMBER            设置获取配额为 NUMBER 字节。

       --bind-address=ADDRESS    绑定至本地主机上的 ADDRESS (主机名或是 IP)。

       --limit-rate=RATE         限制下载速率为 RATE。

       --no-dns-cache            关闭 DNS 查寻缓存。

       --restrict-file-names=OS  限定文件名中的字符为 OS 允许的字符。

       --ignore-case             匹配文件/目录时忽略大小写。

  -4,  --inet4-only              仅连接至 IPv4 地址。

  -6,  --inet6-only              仅连接至 IPv6 地址。

       --prefer-family=FAMILY    首先连接至指定协议的地址

                                 FAMILY 为 IPv6,IPv4 或是 none。

       --user=USER               将 ftp 和 http 的用户名均设置为 USER。

       --password=PASS           将 ftp 和 http 的密码均设置为 PASS。

       --ask-password            提示输入密码。

       --no-iri                  关闭 IRI 支持。

       --local-encoding=ENC      IRI (国际化资源标识符) 使用 ENC 作为本地编码。

       --remote-encoding=ENC     使用 ENC 作为默认远程编码。

       --unlink                  remove file before clobber.



目录:

  -nd, --no-directories           不创建目录。

  -x,  --force-directories        强制创建目录。

  -nH, --no-host-directories      不要创建主目录。

       --protocol-directories     在目录中使用协议名称。

  -P,  --directory-prefix=PREFIX  以 PREFIX/... 保存文件

       --cut-dirs=NUMBER          忽略远程目录中 NUMBER 个目录层。



HTTP 选项:

       --http-user=USER        设置 http 用户名为 USER。

       --http-password=PASS    设置 http 密码为 PASS。

       --no-cache              不在服务器上缓存数据。

       --default-page=NAME     改变默认页

                               (默认页通常是“index.html”)。

  -E,  --adjust-extension      以合适的扩展名保存 HTML/CSS 文档。

       --ignore-length         忽略头部的‘Content-Length’区域。

       --header=STRING         在头部插入 STRING。

       --max-redirect          每页所允许的最大重定向。

       --proxy-user=USER       使用 USER 作为代理用户名。

       --proxy-password=PASS   使用 PASS 作为代理密码。

       --referer=URL           在 HTTP 请求头包含‘Referer: URL’。

       --save-headers          将 HTTP 头保存至文件。

  -U,  --user-agent=AGENT      标识为 AGENT 而不是 Wget/VERSION。

       --no-http-keep-alive    禁用 HTTP keep-alive (永久连接)。

       --no-cookies            不使用 cookies。

       --load-cookies=FILE     会话开始前从 FILE 中载入 cookies。

       --save-cookies=FILE     会话结束后保存 cookies 至 FILE。

       --keep-session-cookies  载入并保存会话 (非永久) cookies。

       --post-data=STRING      使用 POST 方式;把 STRING 作为数据发送。

       --post-file=FILE        使用 POST 方式;发送 FILE 内容。

       --content-disposition   当选中本地文件名时

                               允许 Content-Disposition 头部 (尚在实验)。

       --auth-no-challenge     发送不含服务器询问的首次等待

                               的基本 HTTP 验证信息。



HTTPS (SSL/TLS) 选项:

       --secure-protocol=PR     选择安全协议,可以是 auto、SSLv2、

                                SSLv3 或是 TLSv1 中的一个。

       --no-check-certificate   不要验证服务器的证书。

       --certificate=FILE       客户端证书文件。

       --certificate-type=TYPE  客户端证书类型,PEM 或 DER。

       --private-key=FILE       私钥文件。

       --private-key-type=TYPE  私钥文件类型,PEM 或 DER。

       --ca-certificate=FILE    带有一组 CA 认证的文件。

       --ca-directory=DIR       保存 CA 认证的哈希列表的目录。

       --random-file=FILE       带有生成 SSL PRNG 的随机数据的文件。

       --egd-file=FILE          用于命名带有随机数据的 EGD 套接字的文件。



FTP 选项:

       --ftp-user=USER         设置 ftp 用户名为 USER。

       --ftp-password=PASS     设置 ftp 密码为 PASS。

       --no-remove-listing     不要删除‘.listing’文件。

       --no-glob               不在 FTP 文件名中使用通配符展开。

       --no-passive-ftp        禁用“passive”传输模式。

       --retr-symlinks         递归目录时,获取链接的文件 (而非目录)。



递归下载:

  -r,  --recursive          指定递归下载。

  -l,  --level=NUMBER       最大递归深度 (inf 或 0 代表无限制,即全部下载)。

       --delete-after       下载完成后删除本地文件。

  -k,  --convert-links      让下载得到的 HTML 或 CSS 中的链接指向本地文件。

  -K,  --backup-converted   在转换文件 X 前先将它备份为 X.orig。

  -m,  --mirror             -N -r -l inf --no-remove-listing 的缩写形式。

  -p,  --page-requisites    下载所有用于显示 HTML 页面的图片之类的元素。

       --strict-comments    用严格方式 (SGML) 处理 HTML 注释。



递归接受/拒绝:

  -A,  --accept=LIST               逗号分隔的可接受的扩展名列表。

  -R,  --reject=LIST               逗号分隔的要拒绝的扩展名列表。

  -D,  --domains=LIST              逗号分隔的可接受的域列表。

       --exclude-domains=LIST      逗号分隔的要拒绝的域列表。

       --follow-ftp                跟踪 HTML 文档中的 FTP 链接。

       --follow-tags=LIST          逗号分隔的跟踪的 HTML 标识列表。

       --ignore-tags=LIST          逗号分隔的忽略的 HTML 标识列表。

  -H,  --span-hosts                递归时转向外部主机。

  -L,  --relative                  只跟踪有关系的链接。

  -I,  --include-directories=LIST  允许目录的列表。

  --trust-server-names             use the name specified by the redirection

                                   url last component.

  -X,  --exclude-directories=LIST  排除目录的列表。

  -np, --no-parent                 不追溯至父目录。

例:

[root@localhost ~]# wget http://tel.mirrors.163.com/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-bin-DVD1.iso    #下载centos境像



[root@localhost ~]# wget -c http://tel.mirrors.163.com/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-bin-DVD1.iso    #断点下载



[root@localhost ~]# wget -P /home/download http://tel.mirrors.163.com/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-bin-DVD1.iso    #指定目录下载



[root@localhost ~]# wget -Q 1M http://tel.mirrors.163.com/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-bin-DVD1.iso    #限定最大下载速度



[root@localhost ~]# wget -r -np -nd http://tel.mirrors.163.com/centos/6.4/os/x86_64/   #下载 http://tel.mirrors.163.com/centos/6.4/os/x86_64/ 目录中的所有文件

 

 

  

你可能感兴趣的:(wget)