任务描述:文本内容抽取
/* * 通过tag名称和attribute名称来抽取文本 * @author hym */ public static String getTextByTagNameAndAttributeName(final String tagName,final String attributeName) { String temp = ""; try { Parser parser = new Parser("http://sthaboutme.sinaapp.com/?p=66"); NodeFilter filter = new NodeFilter() { @Override public boolean accept(Node node) { // TODO Auto-generated method stub boolean flag = false; if((node instanceof Tag)) { Tag tag = (Tag)node; if(tag.getTagName().endsWith(tagName)&&tag.getAttribute("class")!=null&&tag.getAttribute("class").endsWith(attributeName)) { flag = true; } } return flag; } }; NodeList nlist = parser.extractAllNodesThatMatch(filter); if(nlist.size()>0) { System.out.println(((TagNode)nlist.elementAt(0)).toHtml()); //temp = nlist.elementAt(0).toHtml(); } } catch (ParserException e) { e.printStackTrace(); } return temp; }
上边的方法对网页比较规范的网页很有效,对于不规范的网页可以通过截取字符串的方法抽取。当然,上边的方法只是抽取第一条匹配到的文本,由于使用场景的不同,欢迎对方法进行扩展。