现在正要做一个解析html的程序,大家用过java开源html解析工具包的,说一下那一个好用?先谢谢大家了!

解决方案 »

  1.   

    这要看你的需求了,不同的解析工具包虽然都有对Html基本解析功能,但是还有很多细节.
    比如
     Jericho HTML Parser Jericho HTML Parser是一个简单而功能强大的Java HTML解析器库,可以分析和处理HTML文档的一部分,包括一些通用的服务器端标签,同时也可以重新生成无法识别的或无效的HTML。它也提供了一个有用的HTML表单分析器。 
    更多Jericho HTML Parser信息 HTML Parser HTML Parser实现即时HTML语法分析程序。
    更多HTML Parser信息 Java HTML Parser HTML Parser提供了一组Tag对象,这些对象可以深入解析一棵可搜索的结构树。
    更多Java HTML Parser信息 TagSoup TagSoup是一个Java开发符合SAX的HTML解析器.
    更多TagSoup信息 HtmlRipper HtmlRipper是一个Java包能够按照预先定义好的规则设置来从Web页中抽取动态数据.
    更多HtmlRipper信息 Cobra Cobra是一个HTML工具包。它包含一个纯Java HTML DOM 分析器和一个页面表现引擎。Cobra支持HTML4,Javascript 和CSS2。
    更多Cobra信息 HtmlCleaner HtmlCleaner是一个开源的Html文档解析器。HtmlCleaner能够重新排序每个元素然后生成结构良好(Well-Formed)的XML文档。默认它遵循的规则是类似于大部份web浏览器为创文档对象模型所使用的规则。然而,用户可以提供自定义tag和规则组来进行过滤和匹配。
    更多HtmlCleaner信息 Java Mozilla Html Parser Java Mozilla Html Parser能够将html解析成Java Document对象。它是一个基于Mozilla Html解析器封装的Html解析类库。因此能够为开发人员提供一个浏览器质量的HTML解析器。
      

  2.   

    还有很多,更多工具包的细节,楼主参考:
    http://www.open-open.com/30.htm
      

  3.   

    nokehtml + dom
    /*生成html 解析器*/
    DOMParser parser = new DOMParser();
    /* 设置网页的默认编码*/
    parser.setProperty("http://cyberneko.org/html/properties/default-encoding","gb2312");

    URL u = new URL(url);

    /*建立与源网站的连接*/
    URLConnection urlconn = u.openConnection();
    urlconn.connect();
    /*获得源网站的字节流,并转化为字符流,设置编码为utf-8*/
    BufferedReader in = new BufferedReader(new InputStreamReader(urlconn.getInputStream(),"gb2312"));
            /*进行解析,转化为xml*/
    parser.parse(new InputSource(in));
            /*转化为dom对象*/
    Document doc = parser.getDocument();