`

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
分享到:
评论

相关推荐

    批处理工具

    批处理脚本通常包含各种DOS命令,如`copy`(复制文件)、`del`(删除文件)、`ren`(重命名文件)等,也可能涉及条件判断(`if`)和循环结构(`for`),以便根据不同的条件执行不同的任务。 `万能批处理工具珍藏版....

    一个tampermonkey脚本用于向StackOverflowGithubZhihu等网站添加代码复制按钮

    4. **用户脚本**: 用户脚本是Tampermonkey等工具的核心,它们可以是任何可以修改网页行为的JavaScript代码。这个特定的脚本是为了提升用户在浏览技术类网站时的体验。 5. **Git仓库**:Git是一种分布式版本控制系统...

    推荐20家国外的脚本下载网站

    9. **Script Copy**:提供脚本复制和分享服务,帮助开发者快速获取并应用到自己的项目中。 10. **Script Archive**:脚本档案馆,存储了大量的历史脚本,对于研究或复古项目很有价值。 11. **PHP Resource Index**...

    Copy trigger PHP:用于复制帝国时代场景触发器的 PHP 脚本-开源

    【标题解析】 "Copy trigger PHP" 是一个特定的 PHP 脚本...通过这个"Copy trigger PHP"脚本,我们可以了解到游戏开发中的数据处理、脚本编写以及开源社区的力量,它不仅提供了实际的工具,还促进了知识和技术的传播。

    webextension-mathml-copy

    在实际应用中,WebExtension-MathML-Copy会通过内容脚本检测网页中的MathML元素,当用户触发扩展时,它会提取MathML代码并将其复制到剪贴板。这为科研人员、教师或学生提供了方便,他们可以在浏览数学或科学内容时,...

    copy-avatar-url:Powercord插件可在用户上下文菜单中添加“复制头像网址”

    该插件是用JavaScript编写的,JavaScript是一种广泛用于客户端网页开发的脚本语言,具备强大的DOM操作能力,非常适合实现此类交互功能。在Powercord环境中,JavaScript可以便捷地接入Discord的API,监听和响应用户的...

    玖玩浏览器

    - copy.php:可能涉及网页内容的复制或剪贴板功能,方便用户快速保存和分享网页信息。 - help.php:可能提供了帮助文档或常见问题解答,协助用户解决使用过程中遇到的问题。 - index.php:通常是网站或应用程序的...

    万能js复制文本代码插件(仅3kb,无flash)

    JavaScript是一种广泛应用于网页开发的脚本语言,可以用来实现客户端的动态交互效果。在这个案例中,JavaScript被用来模拟用户在网页上执行复制操作,使得开发者能够方便地在网页中添加复制按钮,让用户轻松复制所需...

    copy-tabs:Firefox 插件将打开的标签 URL 复制到剪贴板

    这对于经常需要处理大量网页信息或者需要快速整理和归类网页链接的用户来说,是一个非常实用的工具。 从标签“JavaScript”我们可以推断,这款插件是用JavaScript语言编写的。JavaScript是一种广泛用于Web开发的...

    amazon_url_copy_faster:创建按钮以将经过清理的网址复制到剪贴板中

    在IT行业中,JavaScript是一种广泛使用的客户端脚本语言,主要用于网页和网络应用的开发。这个名为"amazon_url_copy_faster"的项目,显然旨在提供一种更高效的方法,让用户能够快速复制亚马逊产品的清理过的URL到...

    CopySourceAsHtml-2.0.0-Source

    "CopySourceAsHtml-2.0.0-Source" 是一个针对Visual Studio(VS)的插件,主要用于帮助开发者将代码源文件复制为HTML格式,这样可以在不离开IDE的情况下更方便地分享、查看和审阅代码。这个插件可能是为了提高开发...

    javascript实现禁止复制网页内容

    JavaScript是一种广泛应用于网页开发的脚本语言,它允许开发者与用户进行交互,处理网页内容以及控制页面行为。在本文中,我们将深入探讨如何使用JavaScript来实现禁止用户复制网页内容的功能,以及这种方法的优缺点...

    m3u8资源下载

    这个链接可以从网页源代码、视频播放器的网络请求中获取,或者在视频分享网站的播放页面找到。 3. **运行FFmpeg命令**:打开命令行工具(如Windows的CMD或Linux/Mac的Terminal),输入以下命令来下载m3u8资源: ...

    javascript实现禁止复制网页内容汇总

    JavaScript作为一种客户端脚本语言,提供了多种方式来实现这一功能。本文将详细介绍如何使用JavaScript和CSS来禁止用户复制网页内容。 首先,我们来看方法一:通过绑定事件监听器来禁用右键菜单、复制和选择。在...

    adobe公司全部产品目录

    - **ColdFusion 9**: 强大的服务器端脚本语言,用于构建动态网页应用程序。 - **ColdFusion Builder 2**: 集成开发环境(IDE),专门针对ColdFusion开发人员。 #### Content Server 4 - **Content Server 4**: 数字...

    自动复制内容_微信浏览器自动复制内容_

    在网页中,通常通过JavaScript这门客户端脚本语言来实现这样的功能。JavaScript允许我们与用户交互,并操作网页中的文本内容。在微信浏览器中,我们可以利用`document.execCommand()`方法来执行复制操作。这个方法是...

    批处理生成器

    7. 脚本导出:生成的批处理脚本以文本格式保存,用户可以随时编辑、查看或分享。 8. 执行记录:批处理生成器可能提供执行日志,记录每次批处理运行的状态和结果,有助于调试和问题排查。 在实际应用中,批处理生成...

    Get-Page-Title:我经常抓取页面分享文章或网站时。这是一个快速书签,可以快速为您抓取

    标题中的“Get-Page-Title”是一个用于抓取网页标题的工具,这通常是通过JavaScript实现的,因为浏览器的客户端脚本语言JavaScript能够直接操作网页的DOM(文档对象模型)。在Web开发中,网页的标题通常存储在HTML...

    工作临时

    通常,iteye博客会分享IT领域的专业知识,尤其是软件开发和编程实践。 【标签】"源码"和"工具"表明这些文件可能包含了代码示例或与开发工具相关的材料。源码通常是程序员用来理解和修改程序的原始指令,而“工具”...

    注册表命令

    `rononce-p`是一个允许用户快速关机的命令行工具,通常用于批量脚本中实现自动化的关机或重启操作。 **应用场景:** - 自动化管理:结合定时任务实现定期维护。 - 批量操作:例如在企业环境中统一关闭大量机器。 #...

Global site tag (gtag.js) - Google Analytics