项目中需要实现一个功能,即将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(); }
相关推荐
在Web开发中,经常需要处理用户提交的数据,为了避免XSS攻击等问题,通常需要对这些数据进行一定的处理,比如转义HTML特殊字符、清除HTML标签以及从CSS样式中提取有用的信息等。本文将详细介绍如何使用Java来实现...
本篇文章将聚焦于一个具体的问题:如何使用Java编程语言从网页中提取百度云链接和提取码,从而实现批量下载。 首先,我们需要理解百度云链接的工作机制。通常,百度云链接是一种指向特定文件或文件夹的共享链接,...
在Java开发中,有时我们需要处理从网页抓取的数据,这些数据通常包含HTML、CSS和JavaScript标签,为了进一步处理和分析这些文本,我们需要将其净化,即去除这些格式化标签。`UnHtmlScript`工具类就是为了解决这个...
在Java编程语言中,读取HTML文档主要涉及网络请求、HTML解析和DOM...理解这些基本概念和工具,可以帮助你有效地从HTML文档中提取所需信息。在实际应用中,还可以根据需求进行更复杂的操作,例如抓取数据、网页爬虫等。
在"java实现HTML解析图片批量下载"这个项目中,我们将主要关注两个核心部分:HTML解析和图片下载。 首先,我们需要引入Jsoup库。在你的`pom.xml`文件(如果你使用的是Maven)中添加以下依赖: ```xml <groupId>...
我们先从标题和描述中提取关键信息,然后逐一解释相关知识点。 标题指出我们要用Java实现一个Web服务器,这意味着我们需要了解Java编程语言以及网络编程的基本概念。Web服务器的主要任务是接收HTTP请求并返回HTTP...
在Java开发中,将HTML转换为Excel是一种常见的需求,特别是在数据导出或报告生成的场景下。本主题主要探讨如何利用Java技术实现这一功能。HTML作为一种网页标记语言,可以方便地展示复杂的数据结构,而Excel则提供了...
4. **HTML生成**:Java中可以使用StringBuilder或StringBuffer来构建HTML字符串,同时需要处理CSS以保持原始文档的样式。 5. **在线预览**:生成的HTML文件可以通过HTTP服务器提供,浏览器可以直接解析并显示,实现...
本篇将详细介绍如何利用Java技术栈,特别是Apache POI库,来实现HTML到Word的转换。 Apache POI是Apache软件基金会的一个开源项目,主要用于读写Microsoft Office格式的文件,如Word(.doc/.docx)、Excel(.xls/....
在IT行业中,CSSBox是Java库的一个重要组成部分,专门用于处理CSS(层叠样式表)相关的任务。这个库被设计用来解析、渲染和操作CSS,为开发者提供了强大的工具,尤其在网页截取和保存为图像的场景下表现卓越。本文将...
该项目是一款基于Java、CSS、JavaScript、HTML的SmartCiteCon学术文献语义引用上下文提取工具,源码包含247个文件,涵盖111个Java源文件、63个XML文件、10个JSON文件、10个PDF文件、10个XML文件、10个Map文件、9个...
在Java编程中,读取HTML并过滤特定标签是一项常见的任务,尤其在处理网页抓取、数据提取或构建网络爬虫时。这篇博文链接虽然没有提供具体的内容,但我们可以通过标题和标签来推测其主要讨论的内容。这里我们将深入...
在提供的文件中,`java2html.java`可能是一个实现了将Java数据转换为HTML格式的程序,而`html2txt.java`可能是一个HTML解析器,将HTML内容转换为纯文本。`www.pudn.com.txt`可能是一个抓取自某个网站(比如pudn.com...
5. **资源提取**:将找到的JavaScript、CSS和图片文件从原始位置复制到新的目录结构中,保持相对路径的正确性。 标签中提到的“源码”意味着这个工具可能是开源的,用户可以查看和修改源代码以满足特定需求。“工具...
在IT行业中,Java是一种广泛使用的编程语言,而HTML则是网页设计的基础。将HTML转换为Word文档的需求在数据处理、报告生成或网页内容导出时经常出现。Apache POI是Java库,专门用于处理Microsoft Office格式的文件,...
HTTP数据包的重组和还原成网页,是将HTTP响应中的HTML、CSS、JavaScript等资源按顺序组合,并执行JavaScript以呈现完整的网页。这个过程可能需要使用到Jsoup这样的HTML解析库来解析HTML,或者使用Jsoup配合Rhino或...
- Java代码实现中,可以通过`wordConvert`方法来实现转换,区分DOC和DOCX文件,以及转换为HTML的逻辑。 2. **提取Word中的目录结构并生成HTML树目录** - 在Word中,目录结构通常是通过自动样式来创建的。因此,...
从解析后的HTML中提取数据通常涉及到DOM遍历。通过Jsoup,我们可以访问每个元素,获取其文本内容或者进一步的子元素。在提取过程中,可能需要根据HTML结构创建一个逻辑模型,以便更高效地组织和处理数据。 3. ...
Java中有多个库可以帮助我们解析HTML,例如`Jsoup`,它提供了强大的CSS选择器和DOM操作方法,方便地提取和修改HTML元素。 3. **百度搜索API**:虽然没有直接提及,但获取百度搜索数据可能需要使用百度的公开API。...
CSSBox是一个完全由Java语言实现的(X)HTML/CSS渲染引擎。它的核心功能是解析HTML和CSS代码,并将其转化为可视化的网页布局,同时提供对渲染后页面的详细信息,便于进行后续的处理。作为一个开源项目,CSSBox为...