我正在建立一个网站。该站点的一部分是由用户在UI中触发的python脚本,该脚本在服务器上运行。它产生HTML文件。我一直在用节点服务器读取html,然后将文件全部发送到客户端以呈现为文档。这些HTML文件遵循标准格式,唯一的变化是显示的表中的数据。
这显然是低效的,因为我要发送大量不需要发送的HTML。我真的只需要发送一个包含一些数据的对象。我已经创建了一个呈现的视图,然后该页面发送Ajax请求以获取其余信息。
问题: 我想解析HTML文件服务器端,从HTML本身提取信息,然后使用它来构建一个发送对象。我可以在节点环境中创建文档对象吗?有什么可以读取和理解HTML的内容,以便我可以像jQuery一样快速解析它吗?或者我可以简单地在节点内加载jQuery,如果可以,怎么办?
。
出于各种原因,我无法(或根本不想更改)脚本的输出格式,我想构建此python >> html >> node >>客户端管道。
答案 0 :(得分:1)
是否有什么可以读取和理解HTML的,以便我可以像jQuery一样快速地解析它?或者我可以简单地在节点内加载jQuery,如果可以,怎么办?
是的,您可以尝试使用Cheerio或Jsdom。该文档应该简单明了。
但是正如您提到的,如果只需要发送一个包含一些数据的对象,那么为什么要解析HTML?只需将对象发送到服务器,然后获取结果?
答案 1 :(得分:0)
如果您想要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>