搜索

首页  >  问答  >  正文

使用CSS选择器从HTML中选择/提取html/text的节点

假设我正在编写一个节点脚本,该脚本使用 fetch 将 html 页面内容检索到变量中。

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

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

  1. 基于纯 CSS 选择器
  2. 基于 jQuery 的工具

P粉356361722P粉356361722275 天前413

全部回复(1)我来回复

  • P粉403549616

    P粉4035496162024-03-20 10:58:17

    要提取 Node.js 中由 CSS 选择器标识的 HTML/文本内容,您可以使用各种包,例如 Cheerio、jsdom 或 Puppeteer。以下是如何使用 CSS 选择器为基于纯 CSS 选择器和基于 jQuery 的工具提取内容的示例:

    基于纯 CSS 选择器: Cheerio 是一个快速且灵活的包,可以解析 HTML 并允许您使用 CSS 选择器来提取数据。以下是如何使用 Cheerio 通过 CSS 选择器提取内容:

    const cheerio = require('cheerio');
    const html = '
    Hello World!
    '; const $ = cheerio.load(html); const content = $('.content').text(); console.log(content); // Output: Hello World!

    基于 jQuery 的工具: 如果您更喜欢 jQuery 语法,则可以使用 jQuery 或 JSDOM 等包。下面是一个使用 jQuery 的示例:

    const jsdom = require('jsdom');
    const { JSDOM } = jsdom;
    
    const html = '
    Hello World!
    '; 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() 方法提取所选元素的文本。

    回复
    0
  • 取消回复