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

Puppeteer(Node.js)获取textContent时丢失换行问题排查

解决textContent丢失
换行的问题

textContent本身不会将<br>标签转换为换行符,它只会提取元素下所有文本内容并忽略这类格式标签,所以会出现换行丢失的情况。以下是两种可行的解决方法:

方法一:通过innerHTML替换
为换行符

先获取元素的HTML内容,再将所有<br>(包括<br/>形式)替换为换行符:

const [e3] = await page.$x('//*[@id="highlightContent"]');
const descHtml = await e3.getProperty('innerHTML');
const rawHtml = await descHtml.jsonValue();
const rawDesc = rawHtml.replace(/<br\s*\/?>/gi, '\n');

方法二:遍历子节点手动处理换行

直接在页面上下文遍历元素的子节点,遇到<br>标签就添加换行符,其他节点提取文本:

const [e3] = await page.$x('//*[@id="highlightContent"]');
const rawDesc = await page.evaluate(el => {
  let text = '';
  for (const node of el.childNodes) {
    if (node.nodeType === Node.ELEMENT_NODE) {
      node.tagName === 'BR' ? text += '\n' : text += node.textContent;
    } else if (node.nodeType === Node.TEXT_NODE) {
      text += node.textContent;
    }
  }
  return text;
}, e3);

这两种方法都能保留<br>对应的换行,同时保留<I>这类标签包裹的文本内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 08:27:38