java 字符串 获取网页纯文本 及空格 回车替换

痞子三分冷 提交于 2019-12-03 02:22:41
package cn.com.czj.front.utils.http;

import java.io.*;

import org.apache.commons.lang3.StringUtils;
import org.htmlparser.Parser;
import org.htmlparser.beans.StringBean;
import org.htmlparser.util.ParserException;
import org.htmlparser.visitors.HtmlPage;

class GetPureWord {
	public static void main(String[] argv) throws IOException, InterruptedException, ParserException {
		Parser parser;
		String body = "";
		String title = "";
		String url = "http://www.linweikun.com/";
		try {
			parser = new Parser(url);
			parser.setEncoding("UTF-8");
			HtmlPage htmlpage = new HtmlPage(parser);
			parser.visitAllNodesWith(htmlpage);
			// 通过htmlparser 获取body内容
			body = htmlpage.getBody().asString();
			// 通过htmlparser 获取title内容
			title = htmlpage.getTitle();
			body = body.replaceAll("[ \\t\\n\\r\\f( |gt) ]+", " ");
			System.out.println(title);
			System.out.println(body);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		// System.out.println(StringUtils.replace(getText(url), "\n",""));
		// System.out.println(StringUtils.replacePattern(getText(url),
		// "\\s*|\t|\r|\n", ""));
		// System.out.println(StringUtils.replacePattern(getText(url), "\\s+",
		// " "));
		System.out.println(StringUtils.replacePattern(StringUtils.replace(getText(url), "\n", ""), "\\s+", " "));

	}

	/**
	 * 根据提供的URL,获取此URL对应网页的纯文本信息
	 * 
	 * @param url
	 *            提供的URL链接
	 * @return RL对应网页的纯文本信息
	 * @throws ParserException
	 */
	public static String getText(String url) throws ParserException {
		StringBean sb = new StringBean();
		// 设置不需要得到页面所包含的链接信息
		sb.setLinks(true);
		// 设置将不间断空格由正规空格所替代
		// sb.setReplaceNonBreakingSpaces(true);
		// 设置将一序列空格由一个单一空格所代替
		// sb.setCollapse(true);
		// 传入要解析的URL
		sb.setURL(url);
		// 返回解析后的网页纯文本信息
		return sb.getStrings();
	}

}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!