html2rss 注册,GitHub - reijovosu/htmlparser2: Forgiving HTML/XML/RSS parser

#htmlparser2 c0ad0edfb02f3f19d057f06e89d2ca2c.pnga940969eb73b665852cfe1382021a3eb.png68747470733a2f2f64617669642d646d2e6f72672f666235352f68746d6c706172736572322e706e67

A forgiving HTML/XML/RSS parser written in JS for NodeJS. The parser can handle streams (chunked data) and supports custom handlers for writing custom DOMs/output.

##Installing

npm install htmlparser2

A live demo of htmlparser2 is available at http://htmlparser.forbeslindesay.co.uk/

##Usage

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?!");

}

}

});

parser.write("Xyz

parser.end();

Output (simplified):

--> Xyz

JS! Hooray!

--> var foo = '<>';

That's it?!

Read more about the parser in the wiki.

##Get a DOM

The DomHandler (known as DefaultHandler in the original htmlparser module) produces a DOM (document object model) that can be manipulated using the DomUtils helper.

The DomHandler, while still bundled with this module, was moved to its own module. Have a look at it for further information.

##Parsing RSS/RDF/Atom Feeds

new htmlparser.FeedHandler(function( error, feed){

...

});

##Performance

Using a modified version of node-expat's bench.js, I received the following results (on OSX):

node-xml: 28.03 ms/el

libxmljs: 11.11 ms/el

sax: 26.92 ms/el

node-expat: 07.32 ms/el

htmlparser: 16.40 ms/el

htmlparser2: 06.32 ms/el

Winner: htmlparser2

The test can be found in tests/bench.js.

##How is this different from node-htmlparser?

This is a fork of the htmlparser module. The main difference is that this is intended to be used only with node (it runs on other platforms using browserify). htmlparser2 was rewritten multiple times and, while it maintains an API that's compatible with htmlparser in most cases, the projects don't share any code anymore.

The parser now provides a callback interface close to sax.js (originally targeted at readabilitySAX). As a result, old handlers won't work anymore.

The DefaultHandler and the RssHandler were renamed to clarify their purpose (to DomHandler and FeedHandler). The old names are still available when requiring htmlparser2, so your code should work as expected.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值