You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Cheerio从非唯一class的HTML元素中提取指定文本?

解决Cheerio抓取目标文本生成JSON数组的方法

核心思路

问题根源在于直接对所有.hauptlink元素调用.text()会将所有元素的文本拼接在一起。正确做法是遍历每个.hauptlink元素,单独提取文本后整理成数组。

示例代码

const cheerio = require('cheerio');
// 替换为你实际抓取到的网页HTML内容
const html = '<div class="hauptlink">Darío Osorio</div><div class="hauptlink">U. de Chile</div><div class="hauptlink">Newcastle</div>';

const $ = cheerio.load(html);
const targetTexts = [];

// 遍历所有匹配的hauptlink元素
$('.hauptlink').each((_, element) => {
  // 提取当前元素的文本并去除首尾空格
  const text = $(element).text().trim();
  // 仅添加非空文本到数组
  if (text) {
    targetTexts.push(text);
  }
});

// 转换为指定结构的JSON数组
const jsonResult = JSON.stringify(targetTexts, null, 2);
console.log(jsonResult);

输出结果

[
  "Darío Osorio",
  "U. de Chile",
  "Newcastle"
]

关键说明

  • 用.each()遍历每个匹配元素,确保单元素文本独立提取
  • .trim()处理文本,避免多余空格或空内容混入结果
  • 最后通过JSON.stringify()生成格式化的JSON数组,满足结构需求

内容的提问来源于stack exchange,提问作者Vaughn1234

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:45:38