java-jsoup-解析html文本
2017-05-05 09:42
351 查看
java-jsoup-解析html文本
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
一、maven 依赖
二、实例
目标:
1.删除html中有指定属性的dom节点
2.将此逻辑加入 filter 中,可以对静态html、动态jsp等标准 html 输出流,进行权限控制(需要权限控制的节点需要加埋点,即:auth-code 属性)
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
一、maven 依赖
<!-- dom 解析 --> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.10.2</version> </dependency>
二、实例
目标:
1.删除html中有指定属性的dom节点
2.将此逻辑加入 filter 中,可以对静态html、动态jsp等标准 html 输出流,进行权限控制(需要权限控制的节点需要加埋点,即:auth-code 属性)
package com.demo.preview; import static org.junit.Assert.*; import java.util.ArrayList; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import org.junit.Test; import com.lowagie.text.List; import me.grass.coder.Debug; /** * * @author xxj */ public class jsoupTest { @Test public void testHtml() { StringBuffer sbf = new StringBuffer(); sbf.append("<!doctype html>"); sbf.append("<html lang=\"en\">"); sbf.append(" <head>"); sbf.append(" <meta charset=\"UTF-8\">"); sbf.append(" <meta name=\"Generator\" content=\"EditPlus®\">"); sbf.append(" <meta name=\"Author\" content=\"\">"); sbf.append(" <meta name=\"Keywords\" content=\"\">"); sbf.append(" <meta name=\"Description\" content=\"\">"); sbf.append(" <title>Document</title>"); sbf.append(" </head>"); sbf.append(" <body>"); sbf.append(" <div id=\"myDiv\"></div>"); sbf.append(" <div auth=\"myDiv\"></div>"); sbf.append(" <div auth-code=\"111\"><div id=\"\">0000</div></div>"); sbf.append(" <div auth-code=\"222\">bb</div>"); sbf.append(" <div auth-code=\"333\"><div id=\"\">5555</div></div>"); sbf.append(" <div auth-code=\"444\">dd</div>"); sbf.append(" </body>"); sbf.append("</html>"); //授权码 ArrayList<String> auths= new ArrayList<String>(); auths.add("111"); auths.add("222"); String html = sbf.toString(); Document doc = Jsoup.parse(html); Elements eles=doc.select("[auth-code]");//查找有指定属性的元素 Debug.printFormat("匹配:{0}",eles.size()); if(eles==null || eles.size()==0){ Debug.print("无内容"); return; } Element e; Integer n=0; String authCode; for(int i=0;i<eles.size();i++){ e = eles.get(i); Debug.printFormat("{0}.{1}" ,(++n) ,e.outerHtml()); authCode = e.attr("auth-code"); //鉴权 if(!hasAuth(authCode,auths)) e.remove(); } Debug.print("html内容;",doc.outerHtml()); } /** * 鉴权 * @param auth * @param auths * @return */ boolean hasAuth(String auth,ArrayList<String> auths){ if(auth==null || auth.isEmpty()) return false; return auths.contains(auth); } }
相关文章推荐
- Java-jsoup-解析HTML
- Jsoup解析本地html,对文本内容提取
- java中jsoup框架解析html
- 非常好用的一个Html解析的java类库 Jsoup
- 使用Jsoup.jar写的工具类(java提取Html中的文本)
- Java - 抓取优酷网视频播放页面(使用jsoup解析html,正则表达式处理字符串)
- 【网络爬虫】【java】微博爬虫(四):数据处理——jsoup工具解析html、dom4j读写xml
- atitit. java jsoup html table的读取解析 总结
- java jsoup解析html实例
- 非常好用的一个Html解析的java类库 Jsoup
- java-jsoup解析html页面的内容
- java利用JSOUP解析html
- Java上的jQuery?解析HTML利器—Jsoup
- atitit. java jsoup html table的读取解析 总结
- jsoup 解析html网页标签获取数据(java 网页解析 数据)
- Java中使用Jsoup对Html文档进行解析和操作
- java-jsoup解析html页面的内容
- JSoup入门笔记--------java HTML 解析库
- java 解析 html 的利器-->jsoup
- java解析html 内有萌妹子~Jsoup+Httpcient