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

如何用ImportXML将伦敦证交所分页表格导入Google Sheets?

解决Google Sheets导入伦敦证交所FTSE AIM成分股表格的问题

为什么IMPORTXML无法工作

目标页面的表格内容是通过JavaScript动态加载的,而IMPORTXML只能抓取页面初始加载的静态HTML,获取不到JS渲染后的表格数据,所以公式失效。

可行的导入方法

方法1:使用Google Apps Script(推荐,支持自动遍历分页)

通过脚本调用官方公开接口获取动态数据,自动处理所有分页:

  1. 打开你的Google Sheets,点击菜单栏「扩展程序」→「Apps Script」
  2. 删除默认代码,粘贴以下脚本:
function importFTSEAIMConstituents() {
  const baseUrl = "https://www.londonstockexchange.com/api/v1/indices/constituents/FTSE%20AIM%20All-Share?page=";
  let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.clearContents();
  
  // 写入表头
  const headers = ["公司名称", "股票代码", "ISIN", "行业", "权重"];
  sheet.getRange(1, 1, 1, headers.length).setValues([headers]);
  
  let page = 1;
  let hasData = true;
  
  while (hasData) {
    const url = baseUrl + page;
    const response = UrlFetchApp.fetch(url);
    const data = JSON.parse(response.getContentText());
    
    if (data.data.length === 0) {
      hasData = false;
      break;
    }
    
    // 格式化当前页数据
    const rows = data.data.map(item => [
      item.name,
      item.ticker,
      item.isin,
      item.sector,
      item.weight
    ]);
    
    // 写入表格
    const startRow = sheet.getLastRow() + 1;
    sheet.getRange(startRow, 1, rows.length, rows[0].length).setValues(rows);
    
    page++;
    // 避免请求过于频繁触发限制
    Utilities.sleep(1000);
  }
  
  SpreadsheetApp.getUi().alert("数据导入完成,共抓取" + (page - 2) + "页数据");
}
  1. 点击「保存」,给脚本命名(比如FTSEAIMImporter)
  2. 点击运行按钮,首次运行需完成权限授权(按提示操作即可)
  3. 运行结束后,当前工作表会自动填充所有成分股数据

方法2:手动导出CSV(适合偶尔获取数据)

如果不需要自动更新,可直接从官网导出完整数据:

  • 打开目标页面,滚动到页面底部,找到「Download CSV」按钮,点击下载完整成分股CSV文件
  • 打开Google Sheets,点击「文件」→「导入」→「上传」,选择下载的CSV文件完成导入

注意事项

  • 脚本中使用的是伦敦证交所公开的API接口,若后续接口字段或URL变更,需对应调整脚本内容
  • 使用脚本时,避免短时间内重复运行,防止触发网站的请求频率限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:15:34