wget -r -p -k --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" -e robots=off http://1532911031.scd.wezhan.cn/
wget加上参数之后,即可成为相当强大的下载工具。
wget -r -p -np -k http://xxx.com/abc/
-r, --recursive(递归) specify recursive download.(指定递归下载)
-k, --convert-links(转换链接) make links in downloaded HTML point to local files.(将下载的HTML页面中的链接转换为相对链接即本地链接)
-p, --page-requisites(页面必需元素) get all images, etc. needed to display HTML page.(下载所有的图片等页面显示所需的内容)
-np, --no-parent(不追溯至父级) don't ascend to the parent directory.
另外断点续传用-nc参数 日志 用-o参数
-e robots=off 绕过robots.txt限制
--user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3"
加入浏览器的头
linux下可以用wget下载整个网站,而且网站链接中包含utf-8编码的中文也能正确处理。
wget -r -p -np -k -m -E -H -D 'fkfz32.faisco.cn,0.ss.faidns.com' -A 'html,css,jsp,php' http://fkfz32.faisco.cn
for i in `cat /tmp/list`; do cat $i | gunzip > /tmp/1; cat /tmp/1 > $i; done
wget -r -p -np -k -m -E --execute robots=off -H -D 'as27.aifuns.net' -A 'html,css,js,jpg,png,gif,jsp,php' http://as27.aifuns.net
整站下载:
绕开robots.txt
wget -r -p -k --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" -e robots=off http://1532911031.scd.wezhan.cn/
利用wget 抓取 网站网页 包括css背景图片
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%%/*} wget / --html-extension / --restrict-file-names=windows / --convert-links / --page-requisites / --execute robots=off / --mirror / --exclude-directories /comment/reply/,/aggregator/,/user/ / --reject "aggregator*" / "$ADDR" find $SERVER -type f -name "*.css" -exec cat {} /; | grep -o 'url(/[^)]*)' | sort | uniq | sed 's/^url(/(.*/))$/http:////'$SERVER'/1/' | wget --mirror --page-requisites -i - for i in `find $SERVER -type f -name "*.css"`; do PREFIX="$(echo $i | sed 's/[^//]*//g; s///$//; s////../////g')" sed -i 's/url(///url('$PREFIX'/g' $i done