`
chenlong_1988
  • 浏览: 185854 次
  • 性别: Icon_minigender_2
社区版块
存档分类

【转】几个open source的html parser的比较

阅读更多

转自:http://javashow.blog.163.com/blog/static/12109964200491452690/

几个open source的html parser的比较  

HTMLParser

最先是看见SourceForge上下载的包,真是有点大的吓人,一个小小的html parser, 居然有5M。下载回来,展开刨去文档等等杂乱的部分,source也还是不小的。用ant build过后,生成两个jar,htmlparser.jar(200k)和htmllexer.jar(56k)。我关心的是对html文件的剖析,所以只关心parser。试了一下,似乎独立的htmlparser.jar就可以了,不需要lib目录里面那些依赖的库。类的结构是比较清晰,划分的比较细致。source目录中有几个sample,都比较简单,很容易看懂。和使用xml parser感觉差不多,也有Event driver的接口,扩充一下也很容易生成DOM Tree,容易上手。

Jericho
一个简单小型的html parser,程序包比较小,500K左右,build出来的jar包40k, 相对于上面的html parser来说是小巧了很多。使用方面,Jericho没有提供类似SAX的接口,也不关注细部结构。对于Jericho核心概念是Segment,一个标记,一段内容,都是Segment,在这个概念层次之上是startTag, endTag等等。看了Jericho自己带的Sample,也都很简单,不过平时用惯了XML一套处理方法的人,会比较不习惯的,我想。源代码的质量一般,没有HTML Parser的好看。

NekoHTML
这是一个基于apache Xerces-j,依赖于Xerces-j的XNI接口。想到Xerces-j那么大的一个东西,就发毛,放弃。

Java HTML Parser
主页除了下载的连接,没有啥更多信息了,看着也比较让人发毛,没有试

TagSoup
主页上的download source链接断了,给作者发了信,很快有了答复,说修好了。编译出来的jar包30K,也算短小精悍。因为核心代码需要用模板生成,所以必须在有perl的环境中才能正常编译。没有文档,没有简单的Sample,看source,有些头晕,感觉更合适做编译原理语法分析和状态机这个部分的演示教材。
BTW: 主页上说,TagSoup的handler接口和SAX的handler非常相近,不过也没有明确的说,就是完全兼容的。

分享到:
评论

相关推荐

    Open Source EXPRESS Parser-开源

    Open Source EXPRESS Parser是一个专为开发者设计的工具,它的核心是一个基于ANTLR解析器生成器的Java Express解析器。ANTLR是一个强大的解析器生成器,能够从语法规范中生成解析器,支持多种编程语言,包括Java。这...

    Python-html5parser一个用于Python基于C的快速HTML5解析

    Python中的`html5-parser`库是一个高效的HTML5解析器,它使用C语言编写,从而提供了比纯Python解析更快的速度。这个库是为了解决在处理大量HTML数据时,需要快速、准确地解析文档的需求。在Python开发中,尤其是在...

    HTML-Parser-3.51.rar_html parser_parser perl_perl html

    `HTML-Parser`是Perl中一个专门用于解析HTML的模块,它使得程序员能够有效地解析和操作HTML文档。 标题中的"HTML-Parser-3.51.rar"表明这是一个关于HTML-Parser 3.51版本的压缩包,通常包含了该模块的源代码、文档...

    html-parser.js

    对html进行转换,适用爬虫/小程序富文本显示等;对html进行转换,适用爬虫/小程序富文本显示等对html进行转换,适用爬虫/小程序富文本显示等对html进行转换,适用爬虫/小程序富文本显示等

    html_parser.rar_Parser_delphi html parser_html parser

    HTML解析器是编程领域中一个重要的工具,尤其在处理网页数据和自动化任务时不可或缺。本压缩包"html_parser.rar"包含了一个用Delphi语言编写的HTML解析器,它利用了汇编内联技术来提高性能。Delphi是一种基于Object ...

    html_parser.zip_Parser_html_html parser_html_parser_zip

    例如,`HTML_parser`可能是一个自定义的组件,提供API来方便地解析和操作HTML文档。在实际应用中,开发者可以通过这个组件来实现的功能可能包括: - 解析HTML页面结构,获取标题、段落、列表等元素。 - 提取网页中的...

    前端开源库-html-react-parser

    `html-react-parser`就是这样一个强大的开源库,它专门用于将HTML字符串解析成React元素,使得开发者可以方便地在React应用中渲染和操作HTML内容。 **解析过程与原理** `html-react-parser`库的核心功能是将HTML...

    enju parser enju parser

    enju parser enju parser

    jericho html Parser

    **jericho HTML Parser** 是一个Java库,专门用于解析HTML文档。它被设计用来处理不规范的HTML,即那些在语法上可能不完全符合HTML标准的实际网页。在处理这种复杂性和不可预测性方面,jericho HTML Parser表现出了...

    Laravel开发-php-simple-html-dom-parser

    而"php-simple-html-dom-parser"是一个PHP库,专门用于处理和解析HTML文档,它提供了类似jQuery的API,使得操作HTML文档变得简单直观。这个包的Laravel版本则将这个强大的解析器集成到Laravel框架中,让开发者可以更...

    javaParser 包 javaparser-core-3.6.16.jar

    JavaParser 是一个强大的开源库,专门用于解析、分析和修改 Java 源代码。这个工具在 Java 开发中尤其有用,因为它允许程序员在运行时或构建过程中动态处理和操作 Java 代码。`javaparser-core-3.6.16.jar` 文件是 ...

    parser中文API以及示例.pdf

    例如,Parser()构造函数用于创建一个新的Parser对象,而Parser(URLConnection connection)构造函数则用于创建一个Parser对象,并使用指定的URLConnection对象。 方法 Parser类提供了多种方法用于解析HTML网页。...

    html-dom-parser:HTML到DOM解析器

    html-dom-parser 在服务器(Node.js)和客户端(浏览器)上均可使用HTML到DOM解析器: HTMLDOMParser(string[, options])解析器将HTML字符串转换为描述DOM树JavaScript对象。例子const parse = require ( '...

    Laravel开发-laravel-html-dom-parser

    在本文中,我们将深入探讨如何在 Laravel 框架中使用 `laravel-html-dom-parser` 包,这是一个基于 PHP Simple HTML DOM Parser 的 Laravel 封装,用于解析和操作 HTML 文档。通过理解这个包,开发者可以更高效地...

    前端开源库-html-dom-parser

    HTML DOM Parser库提供了这个功能,使得开发者能够方便地通过API访问和修改HTML文档的任何部分。 2. **跨平台兼容性**: 作为一款前端开源库,html-dom-parser通常支持多种运行环境,包括浏览器环境和Node.js服务器...

    gumbo-parser-0.10.1_Parser_

    gumbo-parser-0.10.1是一个开源的、符合标准的HTML解析库,它为开发者提供了高效且易用的API接口,使得处理HTML内容变得更加便捷。 首先,我们要理解gumbo-parser的核心功能。Gumbo解析器设计的目标是实现对HTML5...

    html parser 应用ie的内置parser可以解析动态脚本html

    标题提到的"html parser 应用ie的内置parser可以解析动态脚本html",意味着我们将讨论如何利用MSHTML库,这个库是Internet Explorer的核心组件,支持HTML、CSS、JavaScript等网页技术,因此能够处理包含动态脚本的...

    Html_Parser.zip_Parser_java parser

    `Html_Parser` 应该是一个用Java编写的库,因为标签中提到了"java_parser"。在Java中,解析HTML主要有两种常见方式:DOM(Document Object Model)和SAX(Simple API for XML)。DOM将整个HTML文档加载到内存中,...

Global site tag (gtag.js) - Google Analytics