HTML抽取工具Jsoup

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;

/**
 * 

Title: 使用Jsoup例子----

* *

Description:

* * @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; } }

 

你可能感兴趣的:(Java)