HTML解析器对比

解析HTML是一项自动化工作,由(所谓的)HTML解析器执行。它们有两个主要目的:

  • HTML遍历:为程序员提供一个接口,来轻松地访问和修改“HTML代码”。典型例子:DOM解析器。
  • HTML清理:修正有语法错误的HTML,改善结果标记的布局和缩进样式。典型例子:HTML Tidy。
解析器 许可证 实现语言 最新日期* HTML解析[1] 清理HTML** 升级HTML***
Beautiful Soup[2] Python S. F. L. Python 2013-05-31 是 ? ?
Gumbo(页面存档备份,存于) Apache许可证2.0 C 2013-08-13 是 ? ?
html5lib(页面存档备份,存于) MIT许可证 Python和PHP 2013-12-23[3] 是 是 否
HTML::Parser(页面存档备份,存于) 艺术许可协议 Perl 2013-03-28 否[4] ? ?
htmlPurifier(页面存档备份,存于) GNU宽GPL PHP 2009-03-25[5] 否 是 是
HTML Tidy W3C许可证 ANSI C 2009-03-25[5] 是[6] 是 ?
HtmlCleaner(页面存档备份,存于) BSD许可证[7] Java 2013-09-05 否 是 ?
Hubbub(页面存档备份,存于) MIT许可证 C 2013-04-19 是 ? ?
Jaunt API(页面存档备份,存于) Jaunt Beta许可证 Java 2013-08-01 是 是 否
Jericho HTML Parser(页面存档备份,存于) Eclipse公共许可证 Java 2012-10-30[8] 否?? ? ?
jsdom(页面存档备份,存于) MIT许可证 JavaScript 2013-07-21 否 ? ?
jsoup[9] MIT许可证 Java 2013-01-27[10] 是 是 是
JTidy(页面存档备份,存于) JTidy许可证(页面存档备份,存于) Java 2009-12-01[11] 是 ? ?
libxml2 HTMLparser(页面存档备份,存于) MIT许可证 C 2012-09-11[12] 是 ? ?
NekoHTML(页面存档备份,存于) Apache许可证2.0 Java 2013-02-27[13] 否 是 ?
TagSoup Apache许可证2.0 Java 2011-07-07 否 ? ?
Validator.nu HTML Parser(页面存档备份,存于) MIT许可证 Java 2012-06-05 是 ? ?
AVHTML(页面存档备份,存于) LGPL C++ 2015-07-17 是 否 是
解析器 许可证 实现语言 最新日期* HTML解析 清理HTML** 升级HTML***
* (有重要更新的)最新版本日期。
** 规范(生成标准兼容的网页,减少垃圾信息,等)和清理(剥离过剩的表达标签,移除XSS代码,等)HTML代码。
*** 将HTML4.X升级到XHTML或HTML5,将废弃的标签(如CENTER)转换为有效的标签(如带有style="text-align:center;"的DIV)。

参考资料

  1. 12.2 解析HTML文档——HTML标准 (页面存档备份,存于)(英文)
  2. 基于lxml和html5lib,http://www.crummy.com/software/BeautifulSoup/(英文) (页面存档备份,存于)
  3. 版本·html5lib/html5lib-python (页面存档备份,存于)(英文)
  4. HTML-Parser:HTML 5的缺陷#53300 (页面存档备份,存于)(英文)
  5. Windows的HTML Tidy (页面存档备份,存于)(英文)
  6. Tidy解析器举例:PHP的class.tidynode (页面存档备份,存于)(英文)
  7. HtmlCleaner以BSD许可证分发 (页面存档备份,存于)(英文)
  8. Jericho HTML Parser——在SourceForge.net浏览/jericho-html/3.3 (页面存档备份,存于)(英文)
  9. . jsoup.org. [2019-09-22]. (原始内容存档于2019-09-27).
  10. 在master的jsoup/CHANGES·jhy/jsoup·GitHub (页面存档备份,存于)(英文)
  11. JTidy—在SourceForge.net浏览/JTidy (页面存档备份,存于)(英文)
  12. libxml2版本 (页面存档备份,存于)(英文)
  13. NekoHTML | 变更历史 (页面存档备份,存于)(英文)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.