我在Node.js模块页面上看到了一些解析器,但我找不到一些漂亮和新鲜的东西。
尝试https://github.com/tmpvar/jsdom -你给它一些HTML,它给你一个DOM。
如果你想构建DOM,你可以使用jsdom。
还有恭喜恭喜,它有jQuery接口,它比旧版本的jsdom快得多,尽管现在它们的性能相似。
你可能想看看htmlparser2,这是一个流解析器,根据它的基准测试,它似乎比其他的更快,默认情况下没有DOM。它还可以生成DOM,因为它还与创建DOM的处理程序绑定在一起。这是cheerio使用的解析器。
parse5看起来也是一个不错的解决方案。它是相当活跃的(截至此更新,距离上次提交已有11天),符合whatwg,并在jsdom, 角和聚合物中使用。
如果你想要抓取的网站是动态,那么你应该使用phantomjs这样的无头的浏览器。如果你在考虑phantomjs,还可以看看casperjs。你可以用SpookyJS从节点控制casperjs。
在phantomjs旁边有zombiejs。与无法嵌入到nodejs中的phantomjs不同,zombiejs只是一个节点模块。
后面的解决方案有nettuts + toturial。
你也可以看看x-ray: https://github.com/lapwinglabs/x-ray