`

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 =~ pat
		if(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行

0
1
分享到:
评论

相关推荐

    ssh-copy-id 脚本

    问题:ssh-copy-id 命令无法使用,在linux服务器的ssh服务中没有有这个命令,可以在/usr/bin/的这文件夹中查看没有这个ssh-copy-id 命令。 问题分析:是由于ssh服务的问题,可以直接将ssh-copy-id 命令拷贝/usr/...

    免密登录必备ssh-copy-id脚本

    免密登录必备ssh-copy-id脚本

    copy APK脚本

    copy APK脚本

    Java copy对象的工具类

    Java CopyUtil工具类,可以进行对象的深copy,比如:对象里面包含对象,对象里面包含Map,List,Set...等复杂类型的属性都可以copy,copy后的对象与原有对象没有联系,即改变原有对象内容,不会改变copy后的对象里面的...

    硬盘拷贝工具FastCopy

    硬盘拷贝工具FastCopy硬盘拷贝工具FastCopy硬盘拷贝工具FastCopy硬盘拷贝工具FastCopy

    Fastcopy同步复制(完全对比服务器同步工具)

    Fastcopy同步复制(完全对比服务器同步工具)

    tcpcopy导流测试工具

    TCPCopy是一种重放TCP流的工具,使用真实环境来测试互联网服务器上的应用程序。 一、描述: 虽然真实的实时流量对于Internet服务器应用程序的测试很重要,但是由于生产环境中的情况很负责,测试环境很难完全模拟线...

    快速拷贝工具FastCopy_fly.

    快速拷贝工具FastCopy_fly。拷贝速度是正常拷贝的10倍

    文件copy工具

    计算代码工具行数,可以抽取多种格式代码

    paascloud配套数据库脚本 paascloud_mdc copy.sql

    (paascloud_mdc) ...paascloud配套数据库脚本 和源码匹配,绝对能运行 paascloud_uac copy.sql paascloud_mdc copy.sql paascloud_omc copy.sql paascloud_opc copy.sql paascloud_tpc copy.sql

    一个进行copy的工具

    一个进行copy的工具 希望大家喜欢!

    分布式TCP压力测试工具 tcpcopy

    tcpcopy是一种应用请求复制(基于tcp的packets)工具,其应用领域较广,目前已经应用于国内各大互联网公司。 总体说来,tcpcopy主要有如下功能: 1)分布式压力测试工具,利用在线数据,可以测试系统能够承受的...

    FastCopy增量文件工具

    FastCopy---大名鼎鼎的文件增量工具,有需要的童鞋请拿走!

    paascloud配套数据库脚本 paascloud_omc copy.sql

    (paascloud_omc) ...paascloud配套数据库脚本 和源码匹配,绝对能运行 paascloud_uac copy.sql paascloud_mdc copy.sql paascloud_omc copy.sql paascloud_opc copy.sql paascloud_tpc copy.sql

    FastCopy文件拷贝工具

    Fastcopy (文件拷贝工具)下载介绍:FastCopy 是 Windows 平台上最快的文件拷贝、删除软件。由于其功能强劲,性能优越,一时间便超越相同类型的所有其他软件。由于该软件十分小巧,你甚至可以在安装后,直接将安装...

    fastcopy小工具

    快速拷贝粘贴的一款小工具,就是有一点麻烦

    WinMend File Copy【文件复制工具】 V1.3.0绿色汉化免费版

    WinMend File Copy【文件复制工具】 V1.3.0绿色汉化免费版WinMend File Copy【文件复制工具】的简介: WinMend File Copy 是一款可以进行文件复制的工具,主要采用的是独特的技术将文件进行复制并有效提高文件的速度...

    FastCopy快速拷贝工具

    FastCopy快速拷贝工具可提高复制效率,包括不同存储介质之间的拷贝

    excel数据copy工具

    python写的excel数据copy工具

    简陋的swift carthage copy-frameworks 辅助脚本代码

    下面小编就为大家分享一篇简陋的swift carthage copy-frameworks 辅助脚本代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Global site tag (gtag.js) - Google Analytics