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

使用JavaScript爬取Discogs网站:标签提取结果异常问题

解决Discogs页面标签提取错误的问题

问题根源

你使用的$('td a').text().trim()存在两个核心问题:

  • 会选中页面所有td内的a标签,而非仅Label对应的目标td,容易混入无关内容
  • 仅提取a标签的文本,丢失了td内附带的编号(如SHVL 767)等关键信息

解决方案

根据不同需求,提供两种针对性实现:

1. 提取完整的标签条目(含标签名+编号)

先精准定位到Label对应的td,再分割处理内部内容:

// 定位到Label所在行的目标td元素
const labelTd = $('th:contains("Label")').next('td');
// 分割并清理每个标签条目
const fullLabelItems = labelTd.text()
  .split(',')
  .map(item => item.trim())
  .filter(item => item.length > 0);

console.log(fullLabelItems);
// 输出结果:["Harvest – SHVL 767", "Harvest – 1E 062 o 90749"]

2. 提取去重后的标签名

如果只需要唯一的标签名称,可提取a标签文本并去重:

const labelTd = $('th:contains("Label")').next('td');
// 提取所有a标签文本并去重
const uniqueLabels = [...new Set(
  labelTd.find('a').map((_, el) => $(el).text().trim()).get()
)];

console.log(uniqueLabels);
// 输出结果:["Harvest"]

关键说明

Discogs发布页面的Label信息,固定位于<th>Label</th>对应的下一个<td>内,通过th:contains("Label")精准定位,可避免抓取无关内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 17:15:17