Node.js上的HTMLparsing器

在nodejs上有没有像Ruby的nokogiri? 我的意思是一个用户友好的HTMLparsing器。

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

如果你想build立DOM,你可以使用jsdom 。

还有cheerio ,它有jQuery接口,比jsdom的旧版本要快很多,尽pipe这些日子在性能上差不多。

你可能想看看htmlparser2 ,它是一个streamparsing器,根据它的基准testing,它似乎比别人快,而且默认没有DOM。 它也可以生成一个DOM,因为它也绑定了一个创buildDOM的处理程序。 这是cheerio使用的parsing器。

parse5也是一个很好的解决scheme。 它是相当活跃的(从本次更新的最后一次提交以来的11天),兼容WHATWG,并用于jsdom , Angular和Polymer 。

如果你想parsingHTML的网页抓取 ,你可以使用YQL 。 有一个节点模块 。 YQL我认为如果你的HTML来自一个静态网站,最好的解决scheme,因为你依赖于一个服务,而不是你自己的代码和处理能力。 虽然请注意,如果网页的robot.txt不允许页面,YQL将无法使用。

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

除了幻影之外还有僵尸 。 与不能embedded到nodejs中的phantomjs不同,zombiejs只是一个节点模块。

后者的解决scheme有一个nettuts + toturial 。

更新: cheerio可能是你最好的select。

Node.io是一个非常全面的抓取工具。

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

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