如何使用Node.js解析HTML页面?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (681)

我需要解析(服务器端)大量的HTML页面。 在我看来,javascript是解析HTML页面的本地方式,但是这种假设依赖于服务器端代码具有浏览器内部的所有DOM功能。

Node.js是否有内置的能力? 有没有更好的方法来解决这个问题,解析服务器端的HTML?

提问于
用户回答回答于

可以使用npm模块jsdom和htmlparser在Node.JS中创建和解析DOM。

其他选项包括:

  • BeautifulSoup for python
  • 可以将html转换为xhtml并使用XSLT
  • HTMLAgilityPack for .NET
  • CsQuery for .NET(我最喜欢的)
  • spidermonkey和rhino JS引擎具有原生E4X支持。这可能是有用的,只有当将html转换为xhtml。

在所有这些选项中,我更喜欢使用Node.js选项,因为它使用标准的W3C DOM访问器方法,并且我可以在客户端和服务器上重新使用代码。

用户回答回答于

使用已经知道的jQuery选择器。

熟悉的语法:Cheerio实现了核心jQuery的一个子集。Cheerio从jQuery库中删除了所有的DOM不一致和浏览器。 快速:Cheerio使用一个非常简单,一致的DOM模型。因此解析,操作和渲染非常高效。初步的端到端基准测试表明cheerio比JSDOM快大约8倍。 非常灵活:Cheerio围绕@ FB55的原谅htmlparser。Cheerio可以解析几乎任何HTML或XML文档。

扫码关注云+社区

领取腾讯云代金券