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

如何去除JSON格式以在HTML中展示?亚马逊图书标题提取问题

解决方案

后端直接返回纯书名(推荐)

核心是在爬取阶段直接提取纯文本标题,避免将其转为JSON字符串后再处理。如果需要中文书名,可集成翻译服务完成转换。

提取英文标题示例

// Puppeteer+Express 后端代码修改示例
const express = require('express');
const puppeteer = require('puppeteer');
const app = express();

app.get('/get-book-title', async (req, res) => {
  try {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('https://www.amazon.com/dp/081297381X'); // 目标图书页面

    // 直接提取标题纯文本,无需转为JSON字符串
    const pureTitle = await page.$eval('#productTitle', el => el.textContent.trim());
    
    res.send(pureTitle);
    await browser.close();
  } catch (err) {
    console.error(err);
    res.status(500).send('获取标题失败');
  }
});

app.listen(3000, () => console.log('服务运行在端口3000'));

转为中文书名示例(伪代码)

如果需要将英文标题转为中文,可在提取后集成翻译服务:

// 翻译函数伪代码,需替换为实际翻译API调用
const translateToChinese = async (englishTitle) => {
  // 调用翻译API获取中文结果
  const response = await fetch('翻译API地址', {
    method: 'POST',
    body: JSON.stringify({ text: englishTitle })
  });
  const data = await response.json();
  return data.translatedText;
};

// 在获取英文标题后调用翻译
const pureTitle = await page.$eval('#productTitle', el => el.textContent.trim());
const chineseTitle = await translateToChinese(pureTitle);
res.send(chineseTitle);

如果爬取的是API返回的JSON数据,需先解析JSON对象再提取标题:

// 处理API JSON响应的示例
const response = await page.waitForResponse(res => res.url().includes('book-info-api'));
const bookData = await response.json();
const pureTitle = bookData.title; // 根据实际字段名调整
res.send(pureTitle);

前端解析JSON字符串获取书名

如果后端无法修改,只能返回JSON格式的字符串,前端可通过JSON.parse()解析得到纯书名:

<!-- 前端HTML/JS代码修改示例 -->
<div id="book-title"></div>
<script>
fetch('/get-book-title')
  .then(res => res.text())
  .then(jsonStr => {
    // 解析JSON字符串得到纯标题
    const pureTitle = JSON.parse(jsonStr);
    document.getElementById('book-title').textContent = pureTitle;
  })
  .catch(err => console.error(err));
</script>

为什么replace/replaceAll无效?

你之前尝试的字符串替换方法失效,是因为JSON字符串可能包含转义字符(如\")或嵌套结构,手动替换无法覆盖所有边界情况,而通过JSON解析是处理这类数据的标准、可靠方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 11:52:43