如何用Puppeteer与Node.js提取指定表格的目标文本并格式化输出?
提取表格所有
<td>文本并转为逗号分隔格式的解决方案 你当前的代码仅获取了整个表格容器的文本内容,没有单独提取每个<td>标签的文本,因此无法得到目标格式的结果。以下是正确的实现方案:
核心思路
- 选中目标表格下的所有
<td>元素,而非仅选中表格容器 - 遍历每个
<td>元素,提取并清理文本内容 - 将提取到的文本数组转为逗号分隔的字符串
实现代码
// 选中目标表格内的所有<td>元素 const tdElements = await page.$$('.data.table.additional-attributes td'); // 提取每个<td>的文本并去除首尾空白 const tdTexts = await Promise.all( tdElements.map(async el => { return el.evaluate(node => node.textContent.trim()); }) ); // 转换为逗号分隔的字符串 const formattedResult = tdTexts.join(', '); console.log(formattedResult); // 输出示例:3170104501, 3170104501, Genuine Parts, SMA
可选优化(过滤空文本)
如果表格中存在空的<td>,可以添加过滤逻辑去除空项:
const tdTexts = await Promise.all( tdElements.map(async el => { return el.evaluate(node => node.textContent.trim()); }) ).then(texts => texts.filter(text => text)); // 过滤空字符串
内容的提问来源于stack exchange,提问作者Ricardo R
相关产品推荐
相关产品推荐

