📅  最后修改于: 2023-12-03 15:08:43.631000             🧑  作者: Mango
在 Node.js 中,我们可以使用一些模块来呈现 HTML 的纯文本,如 cheerio
、jsdom
、htmlparser2
等,下面我们分别介绍一下它们的用法。
Cheerio 是一个类似于 jQuery 的模块,可以将 HTML 文本转化为 DOM 对象,从而方便地进行文本提取、查询等操作。
npm install cheerio
const cheerio = require('cheerio');
const html = '<html><body><p>Hello World!</p></body></html>';
const $ = cheerio.load(html);
console.log($('body').text()); // 输出:Hello World!
使用 cheerio.load()
方法将 HTML 文本转换成 DOM 对象,然后可以方便地使用 jQuery 风格的语法进行查询,如上例中的 $('body').text()
就是获取 body
元素的纯文本内容。
Jsdom 是一个浏览器 DOM 模拟库,可以在 Node.js 环境下使用,支持类似于 jQuery 的选择器 API,以及一些 DOM 操作方法。
npm install jsdom
const { JSDOM } = require('jsdom');
const html = '<html><body><p>Hello World!</p></body></html>';
const dom = new JSDOM(html);
const document = dom.window.document;
console.log(document.querySelector('body').textContent); // 输出:Hello World!
使用 new JSDOM()
方法将 HTML 文本转换成浏览器 DOM 对象,然后通过 dom.window.document
获取到文档对象,就能像在浏览器环境下一样进行 DOM 操作。
Htmlparser2 是一个非常灵活的 HTML 解析器,可以高效地处理 HTML 文本,可以根据需求进行自定义配置。
npm install htmlparser2
const htmlparser = require('htmlparser2');
const html = '<html><body><p>Hello World!</p></body></html>';
let result = '';
const parser = new htmlparser.Parser({
ontext: (text) => {
result += text;
}
});
parser.write(html);
parser.end();
console.log(result); // 输出:Hello World!
使用 new htmlparser.Parser()
方法创建一个解析器对象,通过配置回调函数来获取解析过程中的数据,最终获取纯文本输出。
以上就是在 Node.js 中呈现 HTML 的纯文本的三种方法,具体使用哪一种还需根据实际需求来选择。在实际开发中,我们还可以通过将 HTML 转换为 Markdown,再进行文本提取等操作,这种方法需要使用到一些 Markdown 转换工具,例如 markdown-it
、remark
等。