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

NodeJS使用Cheerio爬取维基百科S&P 500公司表格指定列的实现问题

问题修复说明
  • 原代码选择器仅匹配表格第一行单元格,无法获取全量成分股数据
  • 原代码最终输出为cheerio实例对象,而非提取到的字段内容
  • 原代码中引入的AWS、express依赖未在爬虫逻辑中使用,可按需移除
正确实现代码
const cheerio = require('cheerio');
const axios = require('axios');

async function getSP500Stocks() {
  try {
    // 已删除原URL开头的多余空格
    const url = 'https://en.wikipedia.org/wiki/List_of_S%26P_500_companies';
    const { data: html } = await axios.get(url);
    const $ = cheerio.load(html);
    const stockList = [];

    // 遍历成分股表格的所有行,跳过表头行
    $('#constituents tbody tr').each((index, row) => {
      const symbol = $(row).find('td:nth-child(1)').text().trim();
      const security = $(row).find('td:nth-child(2)').text().trim();
      // 过滤空行避免脏数据
      if (symbol && security) {
        stockList.push({ symbol, security });
      }
    });

    // 输出整理后的列表
    console.log('S&P 500 成分股列表:');
    console.log(stockList);
    console.log(`合计提取到${stockList.length}只成分股`);
    return stockList;
  } catch (err) {
    console.error('数据提取失败:', err);
  }
}

getSP500Stocks();
运行说明
  • 执行前请先安装对应依赖:npm install cheerio axios
  • 代码运行后会输出包含所有成分股代码和证券名称的数组,以及提取到的总数量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:06:03