当前位置: 首页 > 面试题库 >

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

潘阳舒
2023-03-14
问题内容

我需要解析(服务器端)大量的HTML页面。
我们都同意,regexp不是行之有效的方法。
在我看来,javascript是解析HTML页面的本机方式,但是这种假设取决于服务器端代码,该代码具有javascript在浏览器内部具有的所有DOM功能。

Node.js是否具有内置的功能?
有没有更好的方法来解决此问题,请在服务器端解析HTML?


问题答案:

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

其他选项包括:

  • Python的BeautifulSoup
  • 您可以将html转换为xhtml并使用XSLT
  • NET的HTMLAgilityPack
  • .NET的CsQuery(我的新宠)
  • Spidermonkey和Rhino JS引擎具有本机E4X支持。仅当您将html转换为xhtml时,这才有用。

在所有这些选项中,我更喜欢使用Node.js选项,因为它使用了标准的W3C
DOM访问器方法,并且可以在客户端和服务器上重用代码。我希望BeautifulSoup的方法与W3C
dom更相似,并且我认为将HTML转换为XHTML以编写XSLT简直是可悲的。



 类似资料:
  • 问题内容: 使用C#我想知道如何从此示例html脚本获取Textbox值(即:john): 问题答案: 有多种方法可以使用敏捷包来选择元素。 假设我们定义如下: 1.简单的LINQ 我们可以使用该方法,传递我们正在寻找的元素的名称: 2.更高级的LINQ 我们可以通过使用 更先进的LINQ 来缩小范围: 3. XPath 或者我们可以使用XPath。

  • 问题内容: 我应该如何使用Node.js解析JSON?是否有一些模块可以安全地验证和解析JSON? 问题答案: 你可以简单地使用。 JSON对象的定义是ECMAScript 5规范的一部分。node.js基于Google Chrome的V8引擎构建,该引擎遵循ECMA标准。因此,node.js也有一个全局对象。JSON 注意- 可以占用当前线程,因为它是一种同步方法。因此,如果你打算解析大型JSO

  • 问题内容: 我正在尝试使用jsoup解析HTML。这是我第一次使用jsoup,并且我也阅读了有关它的一些教程。以下是我要解析的HTML表- 如果您看到我的下表,则它现在有3个(我只是为了理解目的将其缩短为3个表行,但总的来说会更多)。现在,我想从我的下表中提取出它的对应信息,例如-我将提取其群集状态及其状态为关闭的所有主机名。 正如你可以看到下面的群集名称,我有两个主机名和其地位,但地位。 因此,

  • 正如您在下面看到的集群名称,我有两个主机名和,其中状态为,但状态为。 因此,我将打印作为集群名,并打印作为主机名,因为它已关闭。使用JSOUP可以做到这一点吗? 到目前为止,我能够使用jsoup提取整个HTML表,但不确定如何提取集群名和主机名- 更新:- 表中可能有两个集群名称,如下所示- 现在,如果您看到上面,我有两个集群名称--一个是,另一个是,所以我想找到所有仅为集群名称关闭的计算机。

  • 问题内容: 如何解析HTML / XML并从中提取信息? 问题答案: 本机XML扩展 我更喜欢使用本机XML扩展]之一,因为它们与PHP捆绑在一起,通常比所有第3方库都快,并为我提供了所需的所有标记控制权。 DOM DOM扩展使您可以使用PHP 5通过DOM API通过XML文档进行操作。它是W3C的Document Object Model Core Level 3的实现,它是一种平台和语言无关

  • 问题内容: 这是我必须从中提取值5390.85,5428.15,5376.15和5413.85的HTML源。我想使用jsoup做到这一点。但是我对jsoup比较陌生(今天我开始使用它)。那我该怎么办呢? 我已经使用jsoup提取了网站的内容。但是如何提取我需要的值?提前致谢 问题答案: 尝试这样的事情: 这是打印输出:-