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

Node JS手表价格爬虫JSON输出混乱,如何调整为结构化对象格式?

代码修改方案

核心修改点

  • 废弃交替填充一维数组的逻辑,直接对应同索引的标题和价格组装为对象
  • 使用trim()方法去除字符串首尾的换行、空白字符
  • 用正则替换价格中的欧元符号、多余无效字符
  • 调用JSON.stringify时传入格式化参数,输出缩进后的易读JSON
import axios from 'axios'
import cheerio from 'cheerio'
import * as fs from 'fs'

// 存储最终结果的对象数组
const result = [];

axios.get("URL").then((response) => {
  const $ = cheerio.load(response.data);
  // 分别获取所有标题和价格元素集合
  const titles = $(".article-title");
  const prices = $(".article-price");

  // 按索引配对组装结构化对象
  titles.each((index, element) => {
    // 清理标题:去除首尾空白、换行
    const cleanTitle = $(element).text().trim();
    // 清理价格:去除首尾空白、过滤非数字和千分位空格的字符(适配欧元符号、其他货币标识清理)
    const rawPrice = $(prices[index]).text().trim();
    const cleanPrice = rawPrice.replace(/[^0-9\s]/g, '').trim();
    
    result.push({
      title: cleanTitle,
      price: cleanPrice
    })
  })

  // 第三个参数为2代表输出时缩进2空格,匹配你需要的格式化JSON格式
  const data = JSON.stringify(result, null, 2);
  fs.writeFileSync('sub.json', data);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:06:02