博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用wget 抓取 网站网页 包括css背景图片
阅读量:6306 次
发布时间:2019-06-22

本文共 1194 字,大约阅读时间需要 3 分钟。

 利用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 

转载于:https://www.cnblogs.com/yisuo/p/9246886.html

你可能感兴趣的文章
逻辑卷管理器(LVM)
查看>>
一个小代码,欢迎大佬的意见,求指正
查看>>
搭建LAMP架构
查看>>
神经网络注意力机制--Attention in Neural Networks
查看>>
Spring.Net+WCF实现分布式事务
查看>>
在Linux上高效开发的7个建议
查看>>
java数据结构 - 数组使用的代码
查看>>
个人简历-项目经验
查看>>
swoole异步任务task处理慢请求简单实例
查看>>
DHCP
查看>>
oracle数据泵导入分区表统计信息报错(四)
查看>>
spring技术内幕读书笔记之IoC容器的学习
查看>>
细说多线程(五) —— CLR线程池的I/O线程
查看>>
JavaScript instanceof和typeof的区别
查看>>
Hadoop文件系统详解-----(一)
查看>>
《面向模式的软件体系结构2-用于并发和网络化对象模式》读书笔记(8)--- 主动器...
查看>>
状态码
查看>>
我的友情链接
查看>>
用sqlplus远程连接oracle命令
查看>>
多年一直想完善的自由行政审批流程组件【2002年PHP,2008年.NET,2010年完善数据设计、代码实现】...
查看>>