Javascript 如何';正常化';带node.js的HTML?

Javascript 如何';正常化';带node.js的HTML?,javascript,html,node.js,Javascript,Html,Node.js,我正试图处理一个带有NodeJS和cheerio的页面,但由于额外的结束标记,我遇到了一些问题,这些标记似乎要将其丢弃。是否有任何NodeJS库,我可以使用它在处理页面之前,首先将页面转换为正确格式的HTML,就像浏览器一样 我看到的HTML示例如下: <tr><td><a href="...">mylink</a></td></tr> <tr><td><a href="...">myli

我正试图处理一个带有NodeJS和cheerio的页面,但由于额外的结束标记,我遇到了一些问题,这些标记似乎要将其丢弃。是否有任何NodeJS库,我可以使用它在处理页面之前,首先将页面转换为正确格式的HTML,就像浏览器一样

我看到的HTML示例如下:

<tr><td><a href="...">mylink</a></td></tr>
<tr><td><a href="...">mylink</a></td></td></tr>
<tr><td><a href="...">mylink</a></td></td></tr>

没有额外的结束标记,它会返回三个锚,但在当前场景中,它只返回一个锚。我在Cheerio中没有看到任何解决方法,因此我想对HTML进行预处理。

基于一些实验,我最终使用了jsdom,利用其创建DOM的能力,并能够序列化该文档对象模型:

function processPage(data) {
    data = jsdom(data).documentElement.outerHTML
    $ = cheerio.load(data);
    ...
}

注意,我可能完全可以用jsdom替换cheerio,但我需要先比较功能集。

您可以尝试gulp html replace

npm i gulp-html-replace

更多信息:

如果问题始终是同一个问题,您可以搜索“”并将其替换为“我不习惯这种方法,因为这将涉及单个用例的代码,我更希望有一个解决方案,可以用于其他标记不良的页面,在浏览器中呈现良好效果。
npm i gulp-html-replace