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

node/puppeteer/cheerio爬虫中用each函数处理表格生成对象数组的问题

你可以按照以下逻辑修改代码:每8个td为一组对应一条结构化数据,提前定义好A~H的字段映射,遍历过程中分组拼接对象即可,修改后代码如下:

// 定义字段映射,按顺序对应每组8个td的key
const keys = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
// 存储最终结果的数组
const result = []
// 存储当前正在拼接的单条数据
let currentItem = {}

$('table[class="ad_tab"]')
  .find("tbody > tr > td")
  .each(function (index, element) {
    // 计算当前td在本组内的下标
    const groupIndex = index % 8
    // 赋值对应字段,trim()可以去除文本前后多余的空白符
    currentItem[keys[groupIndex]] = $(element).text().trim()
    // 到达本组最后一个元素,完成本条数据拼接
    if (groupIndex === 7) {
      result.push(currentItem)
      // 重置临时对象,准备下一组数据
      currentItem = {}
    }
  })

// 格式化输出结构化结果,第二个参数为replacer传null即可,第三个参数为缩进空格数
console.log(JSON.stringify(result, null, 2))

运行上述代码后,控制台就会直接输出你期望的JSON结构。如果后续需要把结果持久化存储为本地JSON文件,直接用Node.js的fs模块写入result数组即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:06:00