假设我正在编写一个节点脚本,它使用
fetch
将 html 页面内容检索到变量中。
现在我有一个用于此类内容的 CSS 选择器。我如何使用它来提取由我的 CSS 选择器识别的 html 和/或文本内容。
如果有我可以利用的现有工具/包,请给出两个级别的答案:
要提取由 Node.js 中的 CSS 选择器标识的 HTML/文本内容,您可以使用各种包,例如 Cheerio、jsdom 或 Puppeteer。以下是如何使用 CSS 选择器为基于纯 CSS 选择器和基于 jQuery 的工具提取内容的示例:
基于纯 CSS 选择器: Cheerio 是一个快速灵活的包,可以解析 HTML 并允许您使用 CSS 选择器来提取数据。以下是如何使用 Cheerio 通过 CSS 选择器提取内容:
const cheerio = require('cheerio');
const html = '<html><body><div class="content">Hello World!</div></body></html>';
const $ = cheerio.load(html);
const content = $('.content').text();
console.log(content); // Output: Hello World!
jQuery-based 工具: 如果您更喜欢 jQuery 语法,则可以使用 jQuery 或 JSDOM 等包。这是一个使用 jQuery 的例子:
const jsdom = require('jsdom');
const { JSDOM } = jsdom;
const html = '<html><body><div class="content">Hello World!</div></body></html>';
const dom = new JSDOM(html);
const $ = require('jquery')(dom.window);
const content = $('.content').text();
console.log(content); // Output: Hello World!
在这两个示例中,我们首先使用包(Cheerio 或 JSDOM)加载 HTML 内容,然后使用 CSS 选择器选择我们想要的内容。最后,我们使用 text() 方法提取所选元素的文本。