nodejs上有Ruby的nokogiri吗? 我指的是用户友好的html解析器。

我在Node.js模块页面上看到了一些解析器,但我找不到一些漂亮和新鲜的东西。


试试https://github.com/tmpvar/jsdom -你给它一些HTML,它给你一个DOM。


如果你想构建DOM,你可以使用jsdom。

还有cheerio,它有jQuery界面,比旧版本的jsdom快得多,尽管现在它们的性能差不多。

你可能想要看看htmlparser2,这是一个流解析器,根据它的基准测试,它似乎比其他的更快,并且默认没有DOM。它还可以生成DOM,因为它还与创建DOM的处理程序绑定在一起。这是cheerio使用的解析器。

Parse5看起来也是一个不错的解决方案。它是相当活跃的(从上次提交到这次更新已经11天了),与whatwg兼容,并用于jsdom、Angular和Polymer。

如果你想要抓取的网站是动态的,那么你应该使用像phantomjs这样的无头浏览器。如果你正在考虑phantomjs,也可以看看casperjs。你可以用SpookyJS从节点控制casperjs。

在幽灵的旁边是僵尸。与无法嵌入到nodejs中的phantomjs不同,zombiejs只是一个节点模块。

对于后者的解决方案,有一个nettuts+ toturial。


你也可以看一下x射线:https://github.com/lapwinglabs/x-ray