zoukankan      html  css  js  c++  java
  • html抽取文本信息-java版(适合lucene建立索引)

    import org.htmlparser.NodeFilter;
    import org.htmlparser.Parser;
    import org.htmlparser.beans.StringBean;
    import org.htmlparser.filters.CssSelectorNodeFilter;
    import org.htmlparser.util.NodeList;
    
    public class HtmlUtil {
    	public static String getText(String html, String id) {
    		try {
    			Parser parser = new Parser(html);
    			NodeFilter filter = new CssSelectorNodeFilter("#" + id);
    			NodeList nList = parser.extractAllNodesThatMatch(filter);
    			return nList == null || nList.size() == 0 ? null : nList.elementAt(
    					0).toPlainTextString();
    		} catch (Exception e) {
    			e.printStackTrace();
    			return null;
    		}
    	}
    
    	public static String getTextByClass(String html, String css_class) {
    		try {
    			Parser parser = new Parser(html);
    			NodeFilter filter = new CssSelectorNodeFilter("." + css_class);
    			NodeList nList = parser.extractAllNodesThatMatch(filter);
    			return nList == null || nList.size() == 0 ? null : nList.elementAt(
    					0).toPlainTextString();
    		} catch (Exception e) {
    			e.printStackTrace();
    			return null;
    		}
    	}
    
    	public static String filterText(String text) {
    		if (text == null)
    			return null;
    		text = text.replace(">", ">");
    		text = text.replace("<", "<");
    		text = text.replace(""", """);
    		text = text.replace(" ", " ");
    		text = text.replace("&", "&");
    		text = text.replace("&copy;", "©");
    		text = text.replace(" ", "");
    		return text;
    	}
    
    	/**
    	 * 获取网页中纯文本信息
    	 * 
    	 * @param html
    	 * @param id
    	 * @return
    	 * @throws Exception
    	 * @throws Exception
    	 */
    	public static String getText(String html) throws Exception {
    		StringBean bean = new StringBean();
    		bean.setLinks(false);
    		bean.setReplaceNonBreakingSpaces(true);
    		bean.setCollapse(true);
    
    		// 返回解析后的网页纯文本信息
    		Parser parser = Parser.createParser(html, "utf-8");
    		parser.visitAllNodesWith(bean);
    		parser.reset();
    		return bean.getStrings();
    	}
    }
    

    须要用htmlparse.jar库,调用方式例如以下:

    HtmlUtil.getText(htmlStr)。

  • 相关阅读:
    地铁项目结对编程
    地铁项目初步计划及简单设计
    构建之法浅读感想
    集美大学1511,1512软件工程课程作业总结
    第二次作业小结
    第二次作业评分可能要 delay 一些
    第一次作业小结
    关于我
    面向对象设计与构造第四单元总结及期终总结
    面向对象设计与构造第三单元作业总结
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6811951.html
Copyright © 2011-2022 走看看