Node.js 上的 HTML 解析器

新手上路,请多包涵

nodejs 上是否有类似 Ruby 的 nokogiri 的东西?我的意思是一个用户友好的 HTML 解析器。

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

原文由 asci 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 604
2 个回答

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

还有 cheerio ,它有 jQuery 界面并且比旧版本的jsdom 快很多,尽管现在它们的性能相似。

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

parse5 看起来也是一个不错的解决方案。它相当活跃(自本次更新的最后一次提交以来 11 天),符合 WHATWG,并在 jsdomAngularPolymer 中使用。

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

除了 phantomjs 之外,还有 zombiejs 。不像 phantomjs 不能嵌入到 nodejs 中,zombiejs 只是一个 node 模块。

后一种解决方案有一个 nettuts+ 教程

原文由 Farid Nouri Neshat 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题