使用Jsoup.jar写的工具类(java提取Html中的文本)

package cn.anzhuoyue.jfinalBlog.util;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.safety.Whitelist;
import com.jfinal.kit.StringKit;

public class HtmlUtil {

    // 只有纯文本可以通过
    public static String getText(String html) {
        if (html == null)
            return null;
        return Jsoup.clean(html, Whitelist.none());
    }

    // 以下标签可以通过
    // b, em, i, strong, u. 纯文本
    public static String getSimpleHtml(String html) {
        if (html == null)
            return null;
        return Jsoup.clean(html, Whitelist.simpleText());
    }

    // 以下标签可以通过
    //a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q, small, strike, strong, sub, sup, u, ul
    public static String getBasicHtml(String html) {
        if (html == null)
            return null;
        return Jsoup.clean(html, Whitelist.basic());
    }

    //在basic基础上  增加图片通过
    public static String getBasicHtmlandimage(String html) {
        if (html == null)
            return null;
        return Jsoup.clean(html, Whitelist.basicWithImages());
    }
    // 以下标签可以通过
    //a, b, blockquote, br, caption, cite, code, col, colgroup, dd, dl, dt, em, h1, h2, h3, h4, h5, h6, i, img, li, ol, p, pre, q, small, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, u, ul
    public static String getFullHtml(String html) {
        if (html == null)
            return null;
        return Jsoup.clean(html, Whitelist.relaxed());
    }

    //只允许指定的html标签
    public static String clearTags(String html, String ...tags) {
        Whitelist wl = new Whitelist();
        return Jsoup.clean(html, wl.addTags(tags));
    }

    // 对关键字加上颜色
    public static String markKeywods (String keywords, String target) {
        if (StringKit.notBlank(keywords)) {
            String[] arr = keywords.split(" ");
            for (String s : arr) {
                if (StringKit.notBlank(s)) {
                    String temp = "<span class=\"highlight\">" + s + "</span>";
                    if(temp!=null)
                        target = target.replaceAll(s, temp);
                }
            }
        }
        return target;
    }

    // 获取文章中的img url
    public static String getImgSrc(String html) {
        if (html == null)
            return null;
        Document doc = Jsoup.parseBodyFragment(html);
        Element image = doc.select("img").first();
        return image == null ? null : image.attr("src");
    }
}

  

时间: 2024-10-11 15:33:32

使用Jsoup.jar写的工具类(java提取Html中的文本)的相关文章

Java 提取Word中的文本和图片

本文将介绍通过Java来提取或读取Word文档中文本和图片的方法.这里提取文本和图片包括同时提取文档正文当中以及页眉.页脚中的的文本和图片. 使用工具:Free Spire.Doc for Java (免费版) Jar文件导入方法(参考): 方法1:下载jar文件包.下载后解压文件,并将lib文件夹下的Spire.Doc.jar文件导入到java程序.导入效果参考如下: 方法2:可通过maven导入.参考导入方法. 测试文档如下: Java代码示例(供参考) [示例1]提取Word中的文本 im

java中IO写文件工具类

下面是一些根据常用java类进行组装的对文件进行操作的类,平时,我更喜欢使用Jodd.io中提供的一些对文件的操作类,里面的方法写的简单易懂. 其中jodd中提供的JavaUtil类中提供的方法足够我们使用,里面的方法写的非常简练,例如append,read等方法,封装更好,更符合面向对象, 这里面我写的一些方法可多都是模仿jodd,从里面进行抽取出来的. /** * 获取路径文件夹下的所有文件 * @param path * @return */ public static File[] ge

加密解密工具类(Java,DES)

一个Java版的DES加密工具类,可以用来进行网络数据传输加密,保存密码的时候进行加密. import java.security.Key; import java.security.spec.AlgorithmParameterSpec; import javax.crypto.Cipher; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import javax.crypto.spec.I

Java提取字符串中的手机号

java通过正则表达式提取字符串中的手机号,简单快速方便,能提取多个手机号 public String getTelnum(String sParam){ if(sParam.length()<=0) return ""; Pattern pattern = Pattern.compile("(1|861)(3|5|8)\\d{9}$*"); Matcher matcher = pattern.matcher(sParam); StringBuffer bf

二维码生成工具类java版

注意:这里我不提供所需jar包的路径,我会把所有引用的jar包显示出来,大家自行Google package com.net.util; import java.awt.BasicStroke; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Shape; import java.awt.geom.RoundRectangle2D; import java.a

自写Date工具类

以前写项目的时候总是在使用到了时间的转换的时候才在工具类中添加一个方法,这样很容易导致代码冗余以及转换的方法注释不清晰导致每次使用都要重新看一遍工具类.因此整理出经常使用的一些转换,用作记录,以便以后使用. 此工具类主要用于获取时间戳以及各种时间类型之间的转换. 1 package com.test; 2 3 import java.text.ParseException; 4 import java.text.SimpleDateFormat; 5 import java.util.Calen

判空工具类——Java

代码 import java.util.Collection; /** * 判空工具类 */ public class EmptyUtil { /** * 判断字符串是否为空,长度为0被认为是空字符串. * * @param str * @return */ public static boolean isEmpty(String str) { if (str != null) { return str.trim().length() == 0; } else { return true; }

java工具类——java将一串数据按照gzip方式压缩和解压缩

我要整理在工作中用到的工具类分享出来,也方便自己以后查阅使用,这些工具类都是我自己实际工作中使用的 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; import java.nio

写shell工具类,一个常用实例

简述: 当我们常用到某些指令时,我们就需要将这个命令进行封装.封装的设计和扩展,因人而异.但为了每个人都能够了解到这个命令,常需要写出这个类的help. 关键字: 函数.getopts 函数 通过自定义函数(可参阅:http://www.runoob.com/linux/linux-shell-func.html),能够实现过程操作.输入捕获(read).输出获取(return). getopts 为了获取用户在命令下的参数,通过该命令来操作(可参阅:https://blog.csdn.net/