利用wget 抓取 网站网页 包括css背景图片
利用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
利用wget 抓取 网站网页 包括css背景图片的更多相关文章
- 写一个shell脚本利用wget抓取股票历史数据
今天,大数据部老大交给我一项任务——抓取股票历史数据.于是乎,我自行在网上找了一下,发现wget真真是一个非常强大的linux下载工具.我已经被深深震撼到了.下面叙述今天的一些过程,还是比较坎坷的. ...
- [Python爬虫] 之二十八:Selenium +phantomjs 利用 pyquery抓取网站排名信息
一.介绍 本例子用Selenium +phantomjs爬取中文网站总排名(http://top.chinaz.com/all/index.html,http://top.chinaz.com/han ...
- wget 爬取网站网页
相应的安装命名 yum -y install wget yum -y install setup yum -y install perl wget -r -p -np -k -E http:// ...
- 【转】详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)
转自:http://www.crifan.com/files/doc/docbook/web_scrape_emulate_login/release/html/web_scrape_emulate_ ...
- 利用Crowbar抓取网页异步加载的内容 [Python俱乐部]
利用Crowbar抓取网页异步加载的内容 [Python俱乐部] 利用Crowbar抓取网页异步加载的内容 在做 Web 信息提取.数据挖掘的过程中,一个关键步骤就是网页源代码的获取.但是出于各种原因 ...
- 抓取网站数据不再是难事了,Fizzler(So Easy)全能搞定
首先从标题说起,为啥说抓取网站数据不再难(其实抓取网站数据有一定难度),SO EASY!!!使用Fizzler全搞定,我相信大多数人或公司应该都有抓取别人网站数据的经历,比如说我们博客园每次发表完文章 ...
- PHP批量抓取远程网页图片并存到本地实现方法和源码
做为一个仿站工作者,当遇到网站有版权时甚至加密的时候,WEBZIP也熄火,怎么扣取网页上的图片和背景图片呢.有时候,可能会想到用火狐,这款浏览器好像一个强大的BUG,文章有版权,屏蔽右键,火狐丝毫也不 ...
- python网络爬虫抓取动态网页并将数据存入数据库MySQL
简述以下的代码是使用python实现的网络爬虫,抓取动态网页 http://hb.qq.com/baoliao/ .此网页中的最新.精华下面的内容是由JavaScript动态生成的.审查网页元素与网页 ...
- Python爬虫实战八之利用Selenium抓取淘宝匿名旺旺
更新 其实本文的初衷是为了获取淘宝的非匿名旺旺,在淘宝详情页的最下方有相关评论,含有非匿名旺旺号,快一年了淘宝都没有修复这个. 可就在今天,淘宝把所有的账号设置成了匿名显示,SO,获取非匿名旺旺号已经 ...
随机推荐
- 初识MVC之建项
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到 ...
- Android监听程序自身被卸载
概述: 假设不是一些特殊的情况,我想大家非常少会接触到这个需求.事实上Android的Java部分没有提供对应的接口.这里须要去调用C的代码,也就是说要写JNI了.关于JNI的初识.大家能够去參考我博 ...
- Ubuntu14.04下初步使用MongoDB
不多说,直接上干货! Ubuntu14.04下Mongodb(在线安装方式|apt-get)安装部署步骤(图文详解)(博主推荐) shell命令模式 输入mongo进入shell命令模式,默认连接的数 ...
- 备份IIS
备份IIS,这里实质指的是备份IIS配置.如果要备份IIS部署的网站的话,直接Copy目录就行了. 备份IIS配置其实和备份系统含义差不多,为了方便系统或者IIS出现故障后能够及时恢复到某节点上,所以 ...
- MFC框架下Opengl窗口闪屏问题解决方案
转自https://blog.csdn.net/niusiqiang/article/details/43116153 虽然启用了双缓冲,但是仍然会出闪屏的情况,这是由于OpenGL自己有刷新背景的函 ...
- 『转』Writing Well
这是前辈Julie Zhuo的最新关于写作的文章,昨天写下-进行总结和阅读思考 这是一篇关于提笔写作的文章,首发在The looking glass...前辈每周都会回答一个读者的问题耶--This ...
- java容器基础
总结一下学过的java容器知识. 一.java容器框架 由于之前学习的java容器类比较混乱,先简单的整理一下java集合框架. 首先,像这种图,网上到处都是,因为这个也算比较准确吧,我也懒得自己画了 ...
- Windows系统Python环境搭建
Python下载 下载地址:https://www.python.org/downloads/ 选择需要下载的版本 以Python3.3.7版本为例,下载64位和32位都分别有三种方式,依次是压缩包, ...
- Codeforces Round #499 (Div. 2) C.FLY 数学推导_逆推
本题应该是可以使用实数二分的,不过笔者一直未调出来,而且发现了一种更为优美的解法,那就是逆推. 首先,不难猜到在最优解中当飞船回到 111 号节点时油量一定为 000, 这就意味着减少的油量等于减少之 ...
- NOIP2016 DAY1 T3 换教室
换教室 Description 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节 课程安排在n个时间段上.在第i(1≤i≤n)个时间段上,两节内 ...