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

JSSoup是否支持类似Beautiful Soup的文本提取功能?

JSSoup全量文本提取实现方案

JSSoup完全支持类似Beautiful Soup中soup.findAll(text=True)的文本提取功能,API设计高度对齐BS4,可直接按以下方法实现全页面可见文本抓取:

方法1:对齐BS4的findAll写法(可单独处理每个文本节点)

和常规BS4用法几乎一致,直接调用findAll并传入text=true即可获取所有文本节点:

const JSSoup = require('jssoup').default;
const soup = new JSSoup('待解析的HTML字符串');

// 等效于Beautiful Soup的soup.findAll(text=True)
const allTextNodes = soup.findAll(text=true);
// 拼接文本,过滤空内容,可根据需求调整分隔符
const visibleText = allTextNodes
  .map(node => node._text.trim())
  .filter(text => text.length > 0)
  .join(' ');

方法2:一键提取全量文本(无需单独处理节点)

如果不需要对单个文本节点做特殊逻辑处理,可直接调用内置的getText方法快速获取拼接后的文本:

// 传入的参数为不同文本节点之间的分隔符,默认是空字符串
const visibleText = soup.getText(' ');

注意事项(提取纯可见文本必看)

以上两种方法默认会提取script、style等非可见标签内的文本,要过滤这部分内容,可在提取文本前先移除对应标签:

// 移除所有脚本标签
soup.findAll('script').forEach(tag => tag.extract());
// 移除所有样式标签
soup.findAll('style').forEach(tag => tag.extract());

// 再执行文本提取即可得到纯可见内容
const pureVisibleText = soup.getText(' ');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:36:02