htmlparser2 软件
允许 HTML/XML/RSS 解析器 。 解析器可以处理流并提供一个回调接口.
安装
npm install htmlparser2
提供 htmlparser2 的活演示 这里。 。 。 .
使用量
var htmlparser = require("htmlparser2");
var parser = new htmlparser.Parser({
onopentag: function(name, attribs){
if(name === "script" && attribs.type === "text/javascript"){
console.log("JS! Hooray!");
}
},
ontext: function(text){
console.log("-->", text);
},
onclosetag: function(tagname){
if(tagname === "script"){
console.log("That's it?!");
}
}
}, {decodeEntities: true});
parser.write("Xyz <script type='text/javascript'>var foo = '<<bar>>';</ script>");
parser.end();
输出( 简化 ) :
--> Xyz
JS! Hooray!
--> var foo = '<<bar>>';
That's it?!
文档
更多信息,请访问 维基百科。 。 。 .
得到一个DOM
这个 DomHandler (称为: DefaultHandler 原图 htmlparser 模块)生成一个DOM(文档对象模型),该模型可以使用: DomUtils 帮手.
这个 DomHandler,虽然仍然与本模块捆绑在一起,但被移动到其 自有模块. 查看它以了解更多信息.
解析 RSS/RDF/Atom 种子
new htmlparser.FeedHandler(function(<error> error, <object> feed){
...
});
注意: 当所提供的种子处理器为大多数种子工作时, 您可能想要使用 降雨/节食者,测试和积极维护要好得多.
业绩
经过一段时间的人工基准, @AndreasMadsen (英语) 发表他的 htmlparser-benchmark,其中基于现实世界网站的 HTML 参数.
在编写本报告时,所有支持的解析器的最新版本显示以下性能特性: 崔维斯CI (请注意Travis并不保证所有测试的同等条件):
gumbo-parser : 34.9208 ms/file ± 21.4238
html-parser : 24.8224 ms/file ± 15.8703
html5 : 419.597 ms/file ± 264.265
htmlparser : 60.0722 ms/file ± 384.844
htmlparser2-dom: 12.0749 ms/file ± 6.49474
htmlparser2 : 7.49130 ms/file ± 5.74368
hubbub : 30.4980 ms/file ± 16.4682
libxmljs : 14.1338 ms/file ± 18.6541
parse5 : 22.0439 ms/file ± 15.3743
sax : 49.6513 ms/file ± 26.6032
此模块与 节点- htmlparser? 吗?
这是叉子 htmlparser 模块。 主要的区别在于,它只用于节点(它运行在其他平台上,使用 浏览器) (中文(简体) ). htmlparser2 被重写多次,虽然它维持一个兼容 htmlparser 在大多数情况下,项目不再共享任何代码.
解析器现在提供了一个接近的回调接口 萨克斯.js (原目标为: 可读性SAX) (中文(简体) ). 结果,老管家们已经不干了.
这个 DefaultHandler 编辑 RssHandler 重新命名是为了澄清其目的(目的: DomHandler 财务报告和审定财务报表 FeedHandler) (中文(简体) ). 需要时仍可使用旧名称 htmlparser2,您的代码应该像预期的那样工作.