html开源库,开源Html分析器解析库对比
发布日期:2021-08-20 00:15:24 浏览次数:14 分类:技术文章

本文共 1862 字,大约阅读时间需要 6 分钟。

几乎所有已知的HTML解析器都是实现W3C DOM API(JAXP的API一部分,用于XML处理),并给你一个org.w3c.dom.Document,便于通过JAXP API直接使用。主要的区别通常是是否能分析有问题的html。大多数解析器是在一定程度上都宽容非结构非完整的HTML,如JTidy,NekoHTML,TagSoup和HtmlCleaner。您通常可以使用这种类型的HTML解析器对付比较“整洁”的HTML源,这样就可以使用W3C DOM和 JAXP API.

NekoHTML:

final DOMParser parser = new DOMParser();

try {

parser.parse(new InputSource(urlIS));

document = parser.getDocument();

} catch (SAXException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

TagSoup:

final Parser parser = new Parser();

SAX2DOM sax2dom = null;

try {

sax2dom = new SAX2DOM();

parser.setContentHandler(sax2dom);

parser.setFeature(Parser.namespacesFeature, false);

parser.parse(new InputSource(urlIS));

} catch (Exception e) {

e.printStackTrace();

}

document = sax2dom.getDOM();

jTidy:

final Tidy tidy = new Tidy();

tidy.setQuiet(true);

tidy.setShowWarnings(false);

tidy.setForceOutput(true);

document = tidy.parseDOM(urlIS, null);

HtmlCleaner:

final HtmlCleaner cleaner = new HtmlCleaner(urlIS);

try {

cleaner.clean();

document = cleaner.createDOM();

} catch (Exception e) {

e.printStackTrace();

}

用以上代码做测试抓取文档html中链接标签,赢家是HtmlCleaner,它快速和容易实现。一个缺点HtmlCleaner是,它不提供一个Maven仓库。

HtmlUnit

HtmlUnit使您能够像一个在WebBrowser里面编程。输入表单的值,单击按钮,调用JavaScript等等。它不只是一个HTML解析器。是一个真正的“图形界面的web浏览器”和HTML的单元测试工具。

Jsoup:

提供一个完全自己的API。它给你像使用jQuery般的CSS选择器,并提供了一个灵活的API来遍历HTML DOM树来获得感兴趣的内容。

HTML DOM树的遍历是Jsoup的主要特征。有过org.w3c.dom.Document打交道的人知道这是多么痛苦的地狱,可以使用jsoup详细的NodeList和节点API来遍历DOM。当然,XPath的使生活更轻松,但是它难以学习。

如果你想从通常的现实世界HTML中提取特定数据,Jsoup是选择。

String html = "

An link.

";

Document doc = Jsoup.parse(html);

Element link = doc.select("a").first();

String text = doc.body().text(); // "An example link"

String linkHref = link.attr("href"); // "http://example.com/"

String linkText = link.text(); // "example""

String linkOuterH = link.outerHtml();

// ""

String linkInnerH = link.html(); // "example"

转载地址:https://blog.csdn.net/weixin_31626765/article/details/117851246 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:支持预览html的解压软件,Bandizip 2.05:轻量级压缩软件(支持右键预览)
下一篇:html自定义列表图标,自定义列表项符号list-style-image详解

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年12月31日 18时42分34秒