Answers:
还有cheerio,它具有jQuery接口,并且比旧版本的jsdom快很多,尽管如今它们的性能相似。
您可能想看一下htmlparser2,它是一个流解析器,根据它的基准,它似乎比其他解析器快,并且默认情况下没有DOM。它也可以生成DOM,因为它还与创建DOM的处理程序捆绑在一起。这是cheerio使用的解析器。
parse5看起来也不错。它相当活跃(自本次更新以来的最后一次提交以来,是11天),符合WHATWG,并且在jsdom,Angular和Polymer中使用。
如果要解析HTML以进行Web抓取,则可以使用YQL 1。有一个节点模块。如果您的HTML来自静态网站,我认为YQL是最好的解决方案,因为您依赖的是服务而不是代码和处理能力。尽管请注意,如果网站的robot.txt禁止该页面,则该按钮将无法使用,但YQL不能使用该页面。
如果您要抓取的网站是动态的,那么您应该使用无头浏览器,例如phantomjs。也看看casperjs,如果你正在考虑phantomjs。您可以使用SpookyJS从node控制casperjs。
在phantomjs旁边有zombiejs。与无法嵌入到nodejs中的phantomjs不同,zombiejs只是一个节点模块。
后一种解决方案有nettuts + turtural。
1自2014年8月以来,YQL必需的YUI库不再得到积极维护,来源
尝试https://github.com/tmpvar/jsdom-您给它一些HTML,它给您一个DOM。
您也可以看一下X射线:https://github.com/lapwinglabs/x-ray