wget下载整站命令

这是一篇转载文章,技术存档。

转注:最常用的命令:
wget -r -p -np -k http://www.xxx.com 抓取整站
wget -l 1 -p -np -k http://www.xxx.com 抓取第一级

我这里用了三个参数:
-r 递归抓取
-k 抓取之后修正链接,适合本地浏览
-E 增加html扩展名
(update:
‘-p’ ‘–page-requisites’ This option causes Wget to download all the files that are necessary to properly display a given html page. This includes such things as inlined images, sounds, and referenced stylesheets. 好像忘+p这个参数了…不管了…人哪有十全十美的…)
-X 可以去掉不想要的目录

所以,整站抓取可以这样,wget -r -p -np -k -E http://www.xxx.com 抓取整站
wget是一款非常优秀的http/ftp下载工具,它功能强大,而且几乎所有的unix系统上都有。不过用它来dump比较现代的网站会有一个问题:不 支持css文件,它不会自动下载、重新链接css中所指定的图片。这个问题导致的最常见的后果是dump下来的网站看不到背景图片。本文所介绍的这个脚本 主要就是用来解决这个缺陷的。
这里简要介绍一下这个脚本的细节:
第3行用于设置要下载的网站的地址。 第10行用于将文件名转换为windows兼容的格式。windows对文件名格式的要求比unix更为苛刻一点,这里指定为windows也可以兼容unix系统。总的来说,wget的这个功能稍微弱了一点,面对一些更苛刻的系统就没有办法了。 第13行用于忽略robots.txt。很多网站的css、js文件都是在robots.txt中被定义为spider不可访问的。 第15、16行用于忽略某些目录和文件。因为没有了robots.txt的限制,wget可能会去访问一些不需要的东西。这里可以根据 具体情况做限制。 第19~24行下载css中链接的文件。 第26~29行修正css中的链接。 以下是这个脚本的内容
#!/bin/sh ADDR=’http://www.EXAMPLE.com/’ SERVER=${ADDR#http://} SERVER=${SERVER%%/g; s/\/$//; s/\//..\\\//g’)’ sed -i ‘s/url(\//url(‘$PREFIX’/g’ $i done
根据实际应用,脚本需要改成以下形式
其中的–convert-links参数即是-k ,把绝对地址转为相对地址
#!/bin/sh
ADDR=’http://www.EXAMPLE.com/’
SERVER=${ADDR#http://}
SERVER=${SERVER%%/g; s/\/$//; s/\//..\\\//g’)’
sed -i ‘s/url(\//url(‘$PREFIX’/g’ $i
done
Wget 的使用
1)支持断点下传功能(2)同时支持FTP和HTTP下载方式(3)支持代理服务器(4)设置方便简单;5)程序小,完全免费;
命令格式:
wget [参数列表] [目标软件、网页的网址]
1、启动类参数
这一类参数主要提供软件的一些基本信息;
-V,–version 显示软件版本号然后退出;
-h,–help显示软件帮助信息;
-e,–execute=COMMAND 执行一个 “.wgetrc”命令
以上每一个功能有长短两个参数,长短功能一样,都可以使用。需要注意的是,这里的-e参数是执行一个.wgettrc的命令,.wgettrc命令其实是一个参数列表,直接将软件需要的参数写在一起就可以了。
2、文件处理参数
这类参数定义软件log文件的输出方式等;
-o,–output-file=FILE 将软件输出信息保存到文件;
-a,–append-output=FILE将软件输出信息追加到文件;
-d,–debug显示输出信息;
-q,–quiet 不显示输出信息;
-i,–input-file=FILE 从文件中取得URL;
以上参数对于攻击者比较有用,我们来看看具体使用;
例1:下载192.168.1.168首页并且显示下载信息
wget -d http://192.168.1.168
例2:下载192.168.1.168首页并且不显示任何信息
wget -q http://192.168.1.168
例3:下载filelist.txt中所包含的链接的所有文件
wget -i filelist.txt
wget -np -m -l5 http://jpstone.bokee.com //不下载本站所链接的其它站点内容,5级目录结构
3、下载参数
下载参数定义下载重复次数、保存文件名等;
-t,–tries=NUMBER 是否下载次数(0表示无穷次)
-O –output-document=FILE下载文件保存为别的文件名
-nc, –no-clobber 不要覆盖已经存在的文件
-N,–timestamping只下载比本地新的文件
-T,–timeout=SECONDS 设置超时时间
-Y,–proxy=on/off 关闭代理
例:下载192.168.1.168的首页并将下载过程中的的输入信息保存到test.htm文件中
wget -o test.htm http://192.168.1.168
4、目录参数
目录参数主要设置下载文件保存目录与原来文件(服务器文件)的目录对应关系;
-nd –no-directories 不建立目录
-x,–force-directories 强制建立目录
可能现在我们对这里的目录还不是很了解,我们来看一个举例
例:下载192.168.1.168的首页,并且保持网站结构
wget -x http://192.168.1.168
5、HTTP参数
HTTP参数设置一些与HTTP下载有关的属性;
–http-user=USER设置HTTP用户
–http-passwd=PASS设置HTTP密码
–proxy-user=USER设置代理用户
–proxy-passwd=PASS设置代理密码
以上参数主要设置HTTP和代理的用户、密码;
6、递归参数设置
在下载一个网站或者网站的一个目录的时候,我们需要知道的下载的层次,这些参数就可以设置;
-r,–recursive 下载整个网站、目录(小心使用)
-l,–level=NUMBER 下载层次
例:下载整个网站
wget -r http://192.168.1.168
7、递归允许与拒绝选项参数
下载一个网站的时候,为了尽量快,有些文件可以选择下载,比如图片和声音,在这里可以设置;
-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 拒绝的目录
如何设定wget所使用的代理服务器
wget可以使用用户设置文件”.wgetrc”来读取很多设置,我们这里主要利用这个文件来是
设置代理服务器。使用者用什么用户登录,那么什么用户主目录下的”.wgetrc”文件就起
作用。例如,”root”用户如果想使用”.wgetrc”来设置代理服务器,”/root/.wgetrc”就起
作用,下面给出一个”.wgetrc”文件的内容,读者可以参照这个例子来编写自己的”wgetrc”文件:
http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080
这两行的含义是,代理服务器IP地址为:111.111.111.111,端口号为:80。第一行指定
HTTP协议所使用的代理服务器,第二行指定FTP协议所使用的代理服务器。
WGet使用指南
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://www.tldp.org/LDP/abs/html/在不稳定的网络上下载一个部分下载的文件,以及在空闲时段下载
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 打印

Leave a reply

Your email address will not be published. Required fields are marked *