Java中常用html解析器

时间:2022-10-31 23:38:24

可能我们在项目中常用Dom解析html,但是以下介绍的解析器可能会让你更简单、容易去解析html。另外javaweb中常用的dom解析是dom4j, 它在web领域中地王道;android中我们常用的是sax、pull。因为它们更省内存。因为不需要将整个XML树读入内存后再进行处理,而是通过输入流的方式进行,在这过程中会触发相关事件........在这些事件回调中我们去做解析工作。


1、jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。据说它是基于MIT协议发布的。

            在线文档:http://www.osctools.net/apidocs/apidoc?api=jsoup-1.6.3http://jsoup.org/

jsoup的主要功能如下:

  1. 从一个URL,文件或字符串中解析HTML;
  2. 使用DOM或CSS选择器来查找、取出数据;
  3. 可操作HTML元素、属性、文本;


示例代码:

Document doc = Jsoup.parse(input, "UTF-8", " http://www.dangdang.com");
Element content = doc.getElementById("content");
Elements links = content.getElementsByTag("a");
for (Element link : links) {
  String linkHref = link.attr("href");
  String linkText = link.text();
}


2、htmlparser是一个纯的java写的html解析的库,它不依赖于其它的java库文件,主要用于改造或提取html。它能超高速解析html,而且不会出错。现在htmlparser最新版本为2.0。 据说htmlparser就是目前最好的html解析和分析的工具。  无论你是想抓取网页数据还是改造html的内容,用了htmlparser绝对会忍不住称赞。

在线文档: http://www.osctools.net/apidocs/apidoc?api=HTMLParserhttp://htmlparser.sourceforge.net/project-info.html

示例代码:
Parser parser = new Parser (" http://www.dangdang.com");
NodeList list = parser.parse (null);
Node node = list.elementAt (0);
NodeList sublist = node.getChildren ();
System.out.println (sublist.size ());


当然,除了这两个还有NekoHTML、 JTidy、 HtmlCleaner等等。另外在C++中的有htmlcxx。