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

使用Cheerio解析TechCrunch页面标题时输出含\n、\t转义序列字符的问题咨询

如何去除Cheerio提取标题中的换行、制表符等空白字符?

我正在用Node.js的Axios和Cheerio爬取TechCrunch页面,提取h2.post-block__title中的标题文本,但返回的结果里总是带有\n、\t这类转义空白字符,示例返回如下:

{ "title": "\n\t\t\t\n\t\t\t\tThis Week in Apps: Instagram brings back the chronological feed, South Korea bans P2E games, Google looks for ecosystem integrations\t\t\t\n\t\t", "url": "https://techcrunch.com/2022/01/08/this-week-in-apps-instagram-brings-back-the-chronological-feed-south-korea-bans-p2e-games-google-looks-for-ecosystem-integrations/" }

我的爬取代码如下:

app.get("/techcrunch", (req, res) => {
  axios("https://techcrunch.com/")
    .then((response) => {
      const html = response.data;
      const $ = cheerio.load(html, {decodeEntities: false });
      const newsItems = [];
      $("h2.post-block__title").each(function () {
        const baseElement = $(this);
        const title = baseElement.text();
        const url = baseElement.find("a").attr("href");
        newsItems.push({ title, url});
      });
      res.send(newsItems);
    })
    .catch((err) => console.log(err));
});

我已经尝试在Cheerio加载时传入{decodeEntities: false}参数,但问题依然存在。原本想使用unescape()方法,但该方法已经被废弃,想请教有没有可行的解决办法?


解决方案

这个问题是网页文本提取里很常见的空白字符处理场景,给你几个实用的解决思路:

1. 用原生trim()快速处理首尾空白

trim()是JavaScript字符串的原生方法,可以直接去除字符串首尾的所有空白字符(包括换行、制表符、空格),修改你的代码如下:

const title = baseElement.text().trim();

如果标题中间有连续的多余空白(比如多个空格或换行),还可以搭配正则替换统一处理:

const title = baseElement.text().trim().replace(/\s+/g, ' ');

这里的/\s+/g会匹配所有连续的空白字符(包括\n、\t、空格),并替换成单个空格,让标题格式更整洁。

2. 用Cheerio内置的空白规范化配置

Cheerio的text()方法支持传入配置参数,开启normalizeWhitespace就能自动帮你处理所有空白问题——不仅去除首尾空白,还会把连续的空白字符替换成单个空格,代码更简洁:

const title = baseElement.text({ normalizeWhitespace: true });

这种方法完全贴合Cheerio的使用场景,不需要额外写正则,一步到位解决问题。

3. 手动正则替换指定空白字符

如果你只想精准移除\n和\t,可以用正则直接匹配替换,再配合trim()清理首尾:

const title = baseElement.text().replace(/[\n\t]/g, '').trim();

这个正则会把所有换行和制表符替换为空字符串,最后用trim()去掉首尾残留的空格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 09:02:29