`
allenson933
  • 浏览: 24196 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Java实现从html中提取css

 
阅读更多

 

项目中需要实现一个功能,即将html中标签的style属性值,提取出单独的css文件。

 

目前已有相关的网站实现: extractcss.com

 

虽然开源,但是它是通过js实现,而且用到了jquery。

 

本文将讨论如何在java中实现类似的功能,由于项目的需要,所以只实现一部分功能(class选择器)。

该功能用到了Java中拥有类似于JQuery选择器功能的html解析工具Jsoup: http://jsoup.org/

 

实现的方法如下:

/**
	 * 从html中获取出css文本
	 * 参考extractCss网站
	 * 借助于Js
	 * @param html    含有style格式的html文本
	 * @return        提取出的css文本
	 */
	public static String extractCss(String html){
		Set<String> allClasses = new HashSet<String>();   // 初始化参数
		StringBuffer resultCss = new StringBuffer();
		org.jsoup.nodes.Document doc = Jsoup.parse(html);       //获取html对象
		Elements classes = doc.select("*[class]");
		for(Iterator<Element> ite = classes.iterator(); ite.hasNext();){
			Element element = ite.next();
			String splits[] = element.attr("class").split(" ");
			for(int i=0; i< splits.length; i++){
				allClasses.add(splits[i]);
				if(i==splits.length-1){
					Elements children = doc.select("."+splits[i]+"> *");
					for(Iterator<Element> tor = children.iterator(); tor.hasNext();){
						Element e = tor.next();
						if(!e.hasAttr("class")){                   //如果没有定义class属性
							allClasses.add(splits[i]+" > "+e.tagName().toLowerCase());
						}
					}
				}
			}
		}
		for(String clss: allClasses){
			Elements element = doc.select("."+clss);
			if(element.hasAttr("style")){
				resultCss.append("."+clss+"{"+element.attr("style")+"}");
			}
		}
		return resultCss.toString();
	}

 

 

分享到:
评论
1 楼 353390229 2017-04-07  
两个步骤轻松提取部分网页里的部分界面css样式,简单易用,精练且准确。

打开工具 http://collect1.longsunhd.com/getcss/

第一步  输入要提取内容和样式的网页地址。

第二步  在获取得的源代码框内选中要提取的部分html源代码。

结果框内出现自动提取的简化样式(css)及html代码

相关推荐

    JAVA实现html转义字符及css清除_.docx

    在Web开发中,经常需要处理用户提交的数据,为了避免XSS攻击等问题,通常需要对这些数据进行一定的处理,比如转义HTML特殊字符、清除HTML标签以及从CSS样式中提取有用的信息等。本文将详细介绍如何使用Java来实现...

    提取文件中百度云链接与提取码的java源码

    本篇文章将聚焦于一个具体的问题:如何使用Java编程语言从网页中提取百度云链接和提取码,从而实现批量下载。 首先,我们需要理解百度云链接的工作机制。通常,百度云链接是一种指向特定文件或文件夹的共享链接,...

    java过滤html,css,js标签工具类(UnHtmlScript)

    在Java开发中,有时我们需要处理从网页抓取的数据,这些数据通常包含HTML、CSS和JavaScript标签,为了进一步处理和分析这些文本,我们需要将其净化,即去除这些格式化标签。`UnHtmlScript`工具类就是为了解决这个...

    JAVA实现HTML文档读取

    在Java编程语言中,读取HTML文档主要涉及网络请求、HTML解析和DOM...理解这些基本概念和工具,可以帮助你有效地从HTML文档中提取所需信息。在实际应用中,还可以根据需求进行更复杂的操作,例如抓取数据、网页爬虫等。

    java实现HTML解析图片批量下载

    在"java实现HTML解析图片批量下载"这个项目中,我们将主要关注两个核心部分:HTML解析和图片下载。 首先,我们需要引入Jsoup库。在你的`pom.xml`文件(如果你使用的是Maven)中添加以下依赖: ```xml &lt;groupId&gt;...

    使用java 实现web服务器,源代码,实现能访问html,css,jpg,jpeg

    我们先从标题和描述中提取关键信息,然后逐一解释相关知识点。 标题指出我们要用Java实现一个Web服务器,这意味着我们需要了解Java编程语言以及网络编程的基本概念。Web服务器的主要任务是接收HTTP请求并返回HTTP...

    java实现 html转Excel

    在Java开发中,将HTML转换为Excel是一种常见的需求,特别是在数据导出或报告生成的场景下。本主题主要探讨如何利用Java技术实现这一功能。HTML作为一种网页标记语言,可以方便地展示复杂的数据结构,而Excel则提供了...

    在线预览-java实现word和excel转html

    4. **HTML生成**:Java中可以使用StringBuilder或StringBuffer来构建HTML字符串,同时需要处理CSS以保持原始文档的样式。 5. **在线预览**:生成的HTML文件可以通过HTTP服务器提供,浏览器可以直接解析并显示,实现...

    java实现HTML转Word

    本篇将详细介绍如何利用Java技术栈,特别是Apache POI库,来实现HTML到Word的转换。 Apache POI是Apache软件基金会的一个开源项目,主要用于读写Microsoft Office格式的文件,如Word(.doc/.docx)、Excel(.xls/....

    cssBox包 java

    在IT行业中,CSSBox是Java库的一个重要组成部分,专门用于处理CSS(层叠样式表)相关的任务。这个库被设计用来解析、渲染和操作CSS,为开发者提供了强大的工具,尤其在网页截取和保存为图像的场景下表现卓越。本文将...

    基于Java、CSS、JavaScript、HTML的SmartCiteCon学术文献语义引用上下文提取工具设计源码

    该项目是一款基于Java、CSS、JavaScript、HTML的SmartCiteCon学术文献语义引用上下文提取工具,源码包含247个文件,涵盖111个Java源文件、63个XML文件、10个JSON文件、10个PDF文件、10个XML文件、10个Map文件、9个...

    java 读取html过滤标签

    在Java编程中,读取HTML并过滤特定标签是一项常见的任务,尤其在处理网页抓取、数据提取或构建网络爬虫时。这篇博文链接虽然没有提供具体的内容,但我们可以通过标题和标签来推测其主要讨论的内容。这里我们将深入...

    java转化成html html转java

    在提供的文件中,`java2html.java`可能是一个实现了将Java数据转换为HTML格式的程序,而`html2txt.java`可能是一个HTML解析器,将HTML内容转换为纯文本。`www.pudn.com.txt`可能是一个抓取自某个网站(比如pudn.com...

    扫描本地页面文件.html或jsp,按照原目录结构,提取页面相关的js.css.img等

    5. **资源提取**:将找到的JavaScript、CSS和图片文件从原始位置复制到新的目录结构中,保持相对路径的正确性。 标签中提到的“源码”意味着这个工具可能是开源的,用户可以查看和修改源代码以满足特定需求。“工具...

    java html转换word

    在IT行业中,Java是一种广泛使用的编程语言,而HTML则是网页设计的基础。将HTML转换为Word文档的需求在数据处理、报告生成或网页内容导出时经常出现。Apache POI是Java库,专门用于处理Microsoft Office格式的文件,...

    java实现网络抓包

    HTTP数据包的重组和还原成网页,是将HTTP响应中的HTML、CSS、JavaScript等资源按顺序组合,并执行JavaScript以呈现完整的网页。这个过程可能需要使用到Jsoup这样的HTML解析库来解析HTML,或者使用Jsoup配合Rhino或...

    word转html带目录结构的实现方式.docx

    - Java代码实现中,可以通过`wordConvert`方法来实现转换,区分DOC和DOCX文件,以及转换为HTML的逻辑。 2. **提取Word中的目录结构并生成HTML树目录** - 在Word中,目录结构通常是通过自动样式来创建的。因此,...

    java后台html 转excel

    从解析后的HTML中提取数据通常涉及到DOM遍历。通过Jsoup,我们可以访问每个元素,获取其文本内容或者进一步的子元素。在提取过程中,可能需要根据HTML结构创建一个逻辑模型,以便更高效地组织和处理数据。 3. ...

    利用java实现从百度网站上获取搜索数据

    Java中有多个库可以帮助我们解析HTML,例如`Jsoup`,它提供了强大的CSS选择器和DOM操作方法,方便地提取和修改HTML元素。 3. **百度搜索API**:虽然没有直接提及,但获取百度搜索数据可能需要使用百度的公开API。...

    CSSBox:纯Java HTML / CSS渲染引擎-开源

    CSSBox是一个完全由Java语言实现的(X)HTML/CSS渲染引擎。它的核心功能是解析HTML和CSS代码,并将其转化为可视化的网页布局,同时提供对渲染后页面的详细信息,便于进行后续的处理。作为一个开源项目,CSSBox为...

Global site tag (gtag.js) - Google Analytics