HTML的HtmlParser解析器

package cn.htmlparser.com.main;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.AndFilter;
import org.htmlparser.filters.HasAttributeFilter;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.nodes.TagNode;
import org.htmlparser.util.NodeList;

public class HtmlParserTest
{
	public static void main(String[] args) throws Exception
	{
		long now = System.currentTimeMillis();
		htmlParser("http://www.sina.com.cn/");
		long current = System.currentTimeMillis();
		System.out.println("所用时间:"+((double)(current - now)/1000));
	}
	//HtmlParser解析器
	public static void htmlParser(String resource) throws Exception
	{
		/**
		 * 解析器
		 */
		Parser myParser = new Parser(resource);
		/** 设置编码 */
		myParser.setEncoding("GBK");
		/** 过滤对象 */
		String filterStr = "div";
		/**
		 * 过滤到的Node
		 */
		NodeFilter filter = new TagNameFilter(filterStr);
		/**
		 * 那场比赛中提取所有节点 按指定的标签名过滤 这里过滤的是div
		 */
		NodeList nodeList = myParser.extractAllNodesThatMatch(filter);
		
		/**
		 * 读取出所有过滤到的标签
		 */
		for (int i = 0; i < nodeList.size(); i++)
		{
			// Node node = nodeList.elementAt(i);
			// System.out.println(node.toHtml());
		}
		/**
		 * 按指定的标签来查询 AndFilter(标签名,标签属性) 指定的节点过滤器
		 */
		NodeFilter filter_blog_box = new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("id", "footer"));
		nodeList = nodeList.extractAllNodesThatMatch(filter_blog_box);
		/**
		 * 获取标签内的全部内容
		 */
		TagNode tagNode = (TagNode) nodeList.elementAt(0);
		nodeList = tagNode.getChildren();
		//输出html代码
		System.out.println(nodeList.toHtml());
	}
}

 

你可能感兴趣的:(HtmlParser)