【问题标题】:Manipulate an html document server side in nodejs? [duplicate]在 nodejs 中操作 html 文档服务器端? [复制]
【发布时间】:2019-11-26 15:46:34
【问题描述】:

我正在建立一个网站。这个站点的一部分是用户在 UI 中触发的 python 脚本,它在服务器上运行。它生成 HTML 文件。我一直在使用节点服务器读取 html,然后将文件全部发送到客户端以呈现为文档。这些 HTML 文件遵循标准格式,唯一改变的是显示的表格中的数据。

这显然是低效的,因为我要发送大量不需要发送的 HTML。我真的只需要发送一个包含一些数据的对象。我创建了一个呈现的视图,然后该页面发送一个 Ajax 请求以获取其余信息。

问题: 我想解析服务器端的 HTML 文件,从 HTML 本身中提取信息,然后使用它来构建一个发送对象。我可以在节点环境中创建文档对象吗?是否有任何东西可以阅读和理解 HTML,以便我可以快速解析它,类似于 jQuery?或者我可以简单地在节点中加载 jQuery,如果可以,如何?

.

由于各种原因,我不能(或根本不想)更改脚本的输出格式,我想构建这个 python >> html >> 节点 >> 客户端管道。

【问题讨论】:

标签: javascript jquery html node.js express


【解决方案1】:

是否有任何东西可以阅读和理解 HTML,以便我可以快速解析它,类似于 jQuery?或者我可以简单地在节点中加载 jQuery,如果可以,如何?

是的,您可以尝试使用CheerioJsdom。文档应该是直截了当的。

但正如您所提到的,如果您只需要发送一个包含一些数据的对象,那么为什么要解析 HTML?只需将对象发送到服务器,然后返回结果?

【讨论】:

  • 我会更清楚;客户端向服务器发送密钥。服务器使用此键执行脚本,生成 5-20 个键/值对。这些键/值对需要发回。目前它们被放入表格中的 HTML 文档中,我想提取它们。
  • 如果您不需要这样做,我不明白为什么将它放在 HTML 表格中。 Cient发送key,你在服务器上生成key-value对,为什么不直接把key-value对发送到前端,按照你需要的方式渲染呢?
  • “由于各种原因,我不能(或者根本不想)更改脚本的输出格式,我想构建这个 python >> html >> 节点 >> 客户端管道。”
  • 那么是的,cheerio 应该会帮助你
【解决方案2】:

如果你想要 jQuery,你的朋友是cheerio。 来自doc

Cheerio 实现了核心 jQuery 的一个子集。 Cheerio 删除了所有 来自 jQuery 库的 DOM 不一致和浏览器垃圾, 揭示其真正华丽的 API。

您可以像使用 jQuery 一样使用 cheerio

const cheerio = require('cheerio')
const $ = cheerio.load('<h2 class="title">Hello world</h2>')

$('h2.title').text('Hello there!')
$('h2').addClass('welcome')

$.html()
//=> <h2 class="title welcome">Hello there!</h2>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多