Node.js 中 HTML 解析全面指南:探索不同的方法
在Node.js中,有几种方法可以用来解析HTML。以下是一些最常见的库和它们的简单示例:
- 使用
cheerio
库
cheerio
是一个与jQuery兼容的库,它可以用来解析HTML文档。
const cheerio = require('cheerio');
const $ = cheerio.load('<h2 class="title">Hello world</h2>');
$('h2.title').text('Hello there!');
console.log($('.title').text()); // 输出 Hello there!
- 使用
htmlparser2
库
htmlparser2
是一个非常快速且经过良好测试的HTML解析器,可以用来解析HTML并为DOM节点创建一个抽象树。
const htmlparser = require("htmlparser2");
const parser = new htmlparser.Parser({
onopentag: function(name, attribs){
if(name === "script" && attribs.type === "text/javascript"){
console.log("JS script tag found with type=text/javascript");
}
}
}, { decodeEntities: true });
parser.write("<script type='text/javascript'>var x;</script>");
parser.end();
- 使用
jsdom
库
jsdom
是一个纯JavaScript实现的标准,可以用来模拟浏览器环境。它可以用来解析和操作HTML文档。
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<html><p>Hello world</p></html>`);
console.log(dom.window.document.querySelector("p").textContent); // 输出 Hello world
- 使用
parse5
库
parse5
是一个HTML和XML解析和序列化的库。
const parse5 = require('parse5');
const document = parse5.parse('<html><head><title>Test</title></head></html>');
console.log(parse5.serialize(document)); // 输出 <html><head><title>Test</title></head></html>
以上就是Node.js中解析HTML的几种方法,你可以根据你的需求选择合适的库。
评论已关闭