Jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
使用例子 https://www.yiibai.com/jsoup/jsoup-examples.html
代码使用示例:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
/**
* <p>Title: 使用Jsoup例子----</p>
*
* <p>Description: </p>
*
* @author mahh
*
* @since:2018年12月19日 下午3:18:12
*
*/
public class JsoupTest {
private static final int abstracts_upper_limit = 100;
private static final int abstracts_lower_limit = 80;
public static String getAbstracts(String detail) {
if(detail == null) {
return "";
}
Document doc = Jsoup.parse(detail);
String detailResult = doc.select("body").text();// 去除标签,获取正文
// 详情只有不到abstracts_upper_limit字,直接返回
if (detailResult.length() <= abstracts_upper_limit) {
return detailResult;
}
String[] tempDetails = detailResult.split("。");
// 详情大于abstracts_upper_limit字,但是没有句号,或只有一个句号,直接截取abstracts_upper_limit字
if (tempDetails == null || tempDetails.length < 2) {
return cleanContent(detailResult);
}
detailResult = tempDetails[0] + "。";
for (int j = 1; j < tempDetails.length; j++) {
detailResult = detailResult + tempDetails[j] + "。";
if (detailResult.length() > abstracts_lower_limit && detailResult.length() <= abstracts_upper_limit) {
break;
} else if (detailResult.length() > abstracts_upper_limit) {
detailResult = cleanContent(detailResult);
break;
}
}
return detailResult;
}
/**
* 若内容末尾为"。"或";",清理后再加"..."
* @param detailResult
* @return
*/
private static String cleanContent(String detailResult) {
detailResult = detailResult.substring(0, abstracts_upper_limit);
if (detailResult.endsWith(",") || detailResult.endsWith(";")) {
detailResult = detailResult.substring(0, detailResult.length() - 1) + "...";
} else {
detailResult = detailResult.substring(0, abstracts_upper_limit) + "...";
}
return detailResult;
}
}