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;

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

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值