日拱一卒无有尽,功不唐捐终入海

linux中使用wget抓取全站静态页面

Linux Sam 530℃ 0评论

wget -m -e robots=off -k -E “http://www.abc.net/”
可以将全站下载以本地的当前工作目录,生成可访问、完整的镜像。

解释:

-m //镜像,就是整站抓取
-e robots=off //忽略robots协议
-k //将绝对URL链接转换为本地相对URL
-E //将所有text/html文档以.html扩展名保存

其它脚本

第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中的链接。
find ../techdoc/data/m.abcd.com -type f -name “*.css” -exec cat {} \; | grep -o ‘url([^)]*)’ | sed ‘s/^url(\(.*\))$/http:\/\/m.abcd.com\/\1/g’

 

转载请注明:PHP笔记 » linux中使用wget抓取全站静态页面

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)