首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

copy网页的工具脚己任享

2013-07-09 
copy网页的工具脚本分享最近有同事让我帮忙把一些网页本地静态化,中间遇到一些问题,比如css的图片下载到本

copy网页的工具脚本分享

最近有同事让我帮忙把一些网页本地静态化,中间遇到一些问题,比如css的图片下载到本地,并替换路径

无法用webzip,所以就自己写个简单工具实现了。代码如下:

?

String proxyHost = 'proxy ip'String proxyPort = '8080'System.setProperty("proxyHost", proxyHost)System.setProperty("proxyPort", proxyPort)// 匹配css文件中的image路径的正则def pat = /.+url\(([^\)]+)\).+/def getImg = {url, cssPath ->String name = url.split(/\//)[-1]def targetFile = new File('../image/' + name)if(!targetFile.exists()){// 如果是相对路径,就根据css的绝对路径获取image的绝对路径if(url.startsWith('../')){url = cssPath + '/' + url}// 下载到文件def os = new FileOutputStream(targetFile)os << new URL(url).openStream()println 'done for ' + name}else{println 'skip for ' + name}}def downImg = {f, host, cssPath ->def ll = []f.eachLine{def mat = it =~ patif(mat){String url = mat[0][1]try {getImg(host + url, cssPath)String name = url.split(/\//)[-1]it = it.replace(url, '../image/' + name)ll << it}catch (ex) {ex.printStackTrace()}}else{ll << it}}// css文件内容重新替换,因为图片路径变化f.withPrintWriter{w ->for(line in ll){w.println line}}}downImg(new File('my.css'), 'http://test.myhost.com', '/app/my.css')

?

?

TIPS:如果需要设置代理,需要前4行

热点排行