使用 HTML 中的 CSS 选择器选择/提取 html/文本的节点

问题描述 投票:0回答:1

假设我正在编写一个节点脚本,它使用

fetch
将 html 页面内容检索到变量中。

现在我有一个用于此类内容的 CSS 选择器。我如何使用它来提取由我的 CSS 选择器识别的 html 和/或文本内容。

如果有我可以利用的现有工具/包,请给出两个级别的答案:

  1. 基于纯 CSS 选择器
  2. 基于 jQuery 的工具
html node.js css-selectors
1个回答
0
投票

要提取由 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() 方法提取所选元素的文本。

© www.soinside.com 2019 - 2024. All rights reserved.