小编典典

Node.js上的HTML解析器

html

在nodejs上有像Ruby的nokogiri这样的东西吗?我的意思是用户友好的HTML解析器。

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


阅读 442

收藏
2020-05-10

共1个答案

小编典典

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

还有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。

2020-05-10