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

利用wget 抓取 网站网页 包括css背景图片相关推荐

  1. python抓取网站图片_利用python抓取网站图片

    看了网上关于python抓取网站图片的例子,所以自己也尝试着写一个,但是发现这个网站的src不是标准的路径,需要自己添加前面的目录地址,尝试了几次也不成功,所以希望有经验的朋友指导下. 本人是初学者, ...

  2. 抓取网站网页信息中的TD信息

    python 抓取某网站网页信息中的TD信息 通过用户名和密码直接登录到网站,然后下载相应的表格信息:或者直接抓取HTML页面中的table下tr的相关内容 引入代码中需要的相关库或者类 import ...

  3. java抓取并保存图片_利用JAVA抓取网站的所有图片并保存于本地

    由于今天我要保存一个网页上的所有图片并做一个ppt,但是这个网页比较蛋疼,是微信上的一个类似于动画的东西,所以没法保存整个网页然后直接取照片, 所以我采用java写了一个程序,采用类似于网络爬虫的思路 ...

  4. wget抓取网站, 模拟手机端抓取

    nohup wget --mirror -p --tries=100 --convert-links -P .  –user-agent="Mozilla/5.0 (iPad; U; CPU ...

  5. python网站数据写入mysql_python网络爬虫抓取动态网页并将数据存入数据库MySQL

    简述 以下的代码是使用python实现的网络爬虫,抓取动态网页 http://hb.qq.com/baoliao/ .此网页中的最新.精华下面的内容是由JavaScript动态生成的.审查网页元素与网 ...

  6. matlab抓取网页信息,如何利用Matlab抓取网页数据

    如何利用Matlab抓取网页数据 2019-01-01 %朋友需要做金融方面的分析,要求从网站上下载大量的数据,一个一个复制粘贴太费事.我写了一个简单的网络爬虫,主要用到正则表达式,可以自动下载网页源 ...

  7. 系统检测到您正在使用网页抓取工具访问_造成Baiduspider(百度蜘蛛)抓取网站异常的原因有哪些...

    造成Baiduspider(百度蜘蛛)抓取网站异常的原因有哪些 有一些网页,内容优质,用户也可以正常访问,但是Baiduspider却无法正常访问并抓取,造成搜索结果覆盖率缺失,对百度搜索引擎对站点都 ...

  8. 利用python抓取网页各种类型内容(静态、动态)

    声明:        本实验的操作系统是ubuntu,python 2.X Code-1:抓取静态的title数据(无需登录用户) 获取淘宝主页的页面静态数据 url:http://www.taoba ...

  9. 利用Crowbar抓取网页异步加载的内容 [Python俱乐部]

    利用Crowbar抓取网页异步加载的内容 [Python俱乐部] 利用Crowbar抓取网页异步加载的内容 [Python俱乐部] 利用Crowbar抓取网页异步加载的内容 在做 Web 信息提取.数 ...

最新文章

  1. python 解析xml
  2. php上传文件 不移动,move_uploaded_file()为什么无法移动上传的文件?
  3. SCCM2012 R2实战系列之九:OSD(中)-- 捕获镜像
  4. NET问答: 如何检查一个 string 是否为有效的 url 格式?
  5. vue3.x全局toast、message、loading组件
  6. datagridview设置某一行选中_机关公文格式设置规范(最新版)
  7. 游戏需求,猎豹启发!揭秘华为Mate 20 X石墨烯膜散热方案出台始末
  8. 自动驾驶 5-3 前馈速度控制 Feedforward Speed Control
  9. MTk2503,使用移动物联网卡上线慢问题
  10. 金融系列-支付清结算之基本概念和入门
  11. Sampling Hair Density Field by Deterministic Importance Sampling
  12. imitate wechat - 3
  13. 书籍推荐:国内第一本ASP.NET 3.5 MVC技术专著
  14. Unity 年度总结:一款游戏的从0到1
  15. 数据可视化之小提琴图(原理+Python代码)
  16. 为何电动汽车没未来感?设计和生产线无根本性改变 | 行业
  17. CodeForces - 1324D Pair of Topics(二分或双指针)
  18. vue尚品汇商城项目-day00【项目介绍:此项目是基于vue2的前台电商项目和后台管理系统】
  19. [渝粤题库]西北工业大学材料力学(更新)
  20. react-sortablejs 实现自定义表单设计

热门文章

  1. InputStream OutputStream 傻傻分不清
  2. webpack打包后自动弹出浏览器查看效果
  3. 01Python基础_09异常
  4. P2955 [USACO09OCT]奇数偶数Even? Odd?
  5. 《书都不会读,你还想成功》
  6. jquery验证框架分装(以后有时间研究拓展)
  7. 浏览器禁止跨域请求json数据解决方法--jsonp
  8. Java 之 IO 异常的处理【了解】
  9. Android解决程序切换后台被干掉,恢复状态问题
  10. 公有云运维安全常见四大难题及解决方案