zoukankan      html  css  js  c++  java
  • 使用wget进行整站下载(转)

    wget在Linux下默认已经安装,Windows下需要自行安装。

    Windows下载地址:http://wget.addictivecode.org/Faq.html#download,链接:http://pan.baidu.com/s/1bp3rB9H 密码:jt9v

    常用命令(递归下载网站):

    wget -r -p -np -k /home/user/root/  http://www.abc.com/abc/
    命令格式: 
    wget [参数列表] [目标软件、网页的网址] 
    
    -V,–version 显示软件版本号然后退出; 
    -h,–help显示软件帮助信息; 
    -e,–execute=COMMAND 执行一个 “.wgetrc”命令 
    
    -o,–output-file=FILE 将软件输出信息保存到文件; 
    -a,–append-output=FILE将软件输出信息追加到文件; 
    -d,–debug显示输出信息; 
    -q,–quiet 不显示输出信息; 
    -i,–input-file=FILE 从文件中取得URL; 
    
    -t,–tries=NUMBER 是否下载次数(0表示无穷次) 
    -O –output-document=FILE下载文件保存为别的文件名 
    -nc, –no-clobber 不要覆盖已经存在的文件 
    -N,–timestamping只下载比本地新的文件 
    -T,–timeout=SECONDS 设置超时时间 
    -Y,–proxy=on/off 关闭代理 
    
    -nd,–no-directories 不建立目录 
    -x,–force-directories 强制建立目录 
    
    –http-user=USER设置HTTP用户 
    –http-passwd=PASS设置HTTP密码 
    –proxy-user=USER设置代理用户 
    –proxy-passwd=PASS设置代理密码 
    
    -r,–recursive 下载整个网站、目录(小心使用) 
    -l,–level=NUMBER 下载层次 
    
    -A,–accept=LIST 可以接受的文件类型 
    -R,–reject=LIST拒绝接受的文件类型 
    -D,–domains=LIST可以接受的域名 
    –exclude-domains=LIST拒绝的域名 
    -L,–relative 下载关联链接 
    –follow-ftp 只下载FTP链接 
    -H,–span-hosts 可以下载外面的主机 
    -I,–include-directories=LIST允许的目录 
    -X,–exclude-directories=LIST 拒绝的目录 

    操作实例:

    1、使用wget下载单个文件

    以下的例子是从网络下载一个文件并保存在当前目录

    wget http://cn.wordpress.org/wordpress-3.1-zh_CN.zip

    在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。

    2、使用wget -O下载并以不同的文件名保存

    wget默认会以最后一个符合”/”的后面的字符来命令,对于动态链接的下载通常文件名会不正确。

    错误:下面的例子会下载一个文件并以名称download.php?id=1080保存

    wget http://www.centos.bz/download?id=1 

    即使下载的文件是zip格式,它仍然以download.php?id=1080命令。

    正确:为了解决这个问题,我们可以使用参数-O来指定一个文件名:

    wget -O wordpress.zip http://www.centos.bz/download.php?id=1080

    3、使用wget –limit -rate限速下载

    当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。

    wget –limit-rate=300k http://cn.wordpress.org/wordpress-3.1-zh_CN.zip

    4、使用wget -c断点续传
    使用wget -c重新启动下载中断的文件:

    wget -c http://cn.wordpress.org/wordpress-3.1-zh_CN.zip 

    对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。

    5、使用wget -b后台下载
    对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载。

    wget -b http://cn.wordpress.org/wordpress-3.1-zh_CN.zip 

    你可以使用以下命令来察看下载进度

    tail -f wget-log

    6、伪装代理名称下载

    有些网站能通过根据判断代理名称不是浏览器而拒绝你的下载请求。不过你可以通过–user-agent参数伪装。

    wget –user-agent=”Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16″ http://下载链接

    7、使用wget –spider测试下载链接

    当你打算进行定时下载,你应该在预定时间测试下载链接是否有效。我们可以增加–spider参数进行检查。

    wget –spider URL 

    8、使用wget –tries增加重试次数

    如果网络有问题或下载一个大文件也有可能失败。wget默认重试20次连接下载文件。如果需要,你可以使用–tries增加重试次数。

    wget –tries=40 URL

    9、使用wget -i下载多个文件

    wget -i filelist.txt
    #filelist.txt为下载url列表
    url1 
    url2 
    url3 
    url4 

    10、使用wget –mirror镜像网站

    下面的例子是下载整个网站到本地。

    wget –mirror -p –convert-links -P ./LOCAL URL
    –miror:开户镜像下载
    -p:下载所有为了html页面显示正常的文件
    –convert-links:下载后,转换成本地的链接
    -P ./LOCAL:保存所有文件和目录到本地指定目录

    11、使用wget –reject过滤指定格式下载

    你想下载一个网站,但你不希望下载图片,你可以使用以下命令。

    wget –reject=gif url

    12、使用wget -o把下载信息存入日志文件

    你不希望下载信息直接显示在终端而是在一个日志文件,可以使用以下命令:

    wget -o download.log URL

    13、使用wget -Q限制总下载文件大小

    当你想要下载的文件超过5M而退出下载,你可以使用以下命令:

    wget -Q5m -i filelist.txt 

    注意:这个参数对单个文件下载不起作用,只能递归下载时才有效。

    14、使用wget -r -A下载指定格式文件

    下载一个网站的所有PDF文件

    wget -r -A.pdf url

    15、使用wget FTP下载

    你可以使用wget来完成ftp链接的下载。

    使用wget匿名ftp下载

    wget ftp-url

    使用wget用户名和密码认证的ftp下载

    wget –ftp-user=USERNAME –ftp-password=PASSWORD url

    16、断点续传

    当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完,连接就已经被切断,此时就需要断点续传。wget的断点续传是自动的,只需要使用-c参数,例如:

    wget -c http://the.url.of/incomplete/file 

    使用断点续传要求服务器支持断点续传。-t参数表示重试次数,例如需要重试100次,那么就写-t 100,如果设成-t 0,那么表示无穷次重试,直到连接成功。-T参数表示超时等待时间,例如-T 120,表示等待120秒连接不上就算超时。

    17、选择性的下载 

    可以指定让wget只下载一类文件,或者不下载什么文件。例如:

    wget -m –reject=gif http://target.web.site/subdirectory 

    表示下载http://target.web.site/subdirectory,但是忽略gif文件。–accept=LIST 可以接受的文件类型,–reject=LIST拒绝接受的文件类型。

    18、密码和认证

    wget只能处理利用用户名/密码方式限制访问的网站,可以利用两个参数:

    –http-user=USER设置HTTP用户 
    –http-passwd=PASS设置HTTP密码 

    对于需要证书做认证的网站,就只能利用其他下载工具了,例如curl。

    19、利用代理服务器进行下载

    如果用户的网络需要经过代理服务器,那么可以让wget通过代理服务器进行文件的下载。此时需要在当前用户的目录下创建一个.wgetrc文件。文件中可以设置代理服务器:

    http-proxy = 111.111.111.111:8080 
    ftp-proxy = 111.111.111.111:8080 

    分别表示http的代理服务器和ftp的代理服务器。如果代理服务器需要密码则使用:

    –proxy-user=USER设置代理用户 
    –proxy-passwd=PASS设置代理密码 

    使用参数–proxy=on/off 使用或者关闭代理。

    20、中文文档名在平常的情况下会被编码, 使用–cut-dirs时可以正常显示

    wget -r -np -nH –cut-dirs=3 ftp://host/test/ 

    以上转自:http://www.jb51.net/LINUXjishu/86326.html

  • 相关阅读:
    POJ1486 Sorting Slides 二分图or贪心
    POJ2060 Taxi Cab Scheme 最小路径覆盖
    POJ3083 Children of the Candy Corn 解题报告
    以前的文章
    POJ2449 Remmarguts' Date K短路经典题
    这一年的acm路
    POJ3014 Asteroids 最小点覆盖
    POJ2594 Treasure Exploration 最小路径覆盖
    POJ3009 Curling 2.0 解题报告
    POJ2226 Muddy Fields 最小点集覆盖
  • 原文地址:https://www.cnblogs.com/EasonJim/p/6870387.html
Copyright © 2011-2022 走看看