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

如何在Google Sheets中用IMPORTHTML/IMPORTXML获取GSPX.L股价?

解决GSPX.L股价获取及Google Sheets可复用金融数据抓取方案

一、GSPX.L股价的直接获取方法

1. 调整GOOGLEFINANCE参数重试

Google Finance对部分个股代码失效,大概率是未指定交易所前缀导致,尝试带交易所代码的函数:

=GOOGLEFINANCE("LON:GSPX", "price")

(LON代表伦敦证券交易所,多数欧洲个股需加此前缀)

2. 复用晨星(morningstar.co.uk)的IMPORTHTML

你之前用晨星成功过,GSPX.L在晨星的页面可直接用表格抓取:

=INDEX(IMPORTHTML("https://www.morningstar.co.uk/uk/funds/snapshot/snapshot.aspx?id=F00000OQK5", "table", 2), 1, 2)
  • 若表格索引变化,可通过IMPORTHTML不带INDEX的形式先返回所有表格,找到价格所在的表格序号后调整参数。

3. 自定义Google Apps Script脚本兜底

如果上述方法失效,用脚本抓取动态渲染页面的价格(以雅虎财经为例):

  1. 打开Google Sheets,点击「扩展程序」→「Apps Script」
  2. 粘贴以下代码:
function getGSPXPrice() {
  const url = "https://finance.yahoo.com/quote/GSPX.L/";
  const response = UrlFetchApp.fetch(url);
  const html = response.getContentText();
  // 匹配雅虎财经的价格字段
  const priceMatch = html.match(/"regularMarketPrice":{"raw":(\d+\.?\d*)/);
  return priceMatch ? parseFloat(priceMatch[1]) : "无法获取价格";
}
  1. 保存脚本,返回表格输入=getGSPXPrice()即可获取价格

二、可复用的系统性抓取方案

1. 优先验证原生函数的参数正确性

GOOGLEFINANCE失效90%以上是代码格式问题:

  • 欧洲个股需加交易所前缀(如LON:、PAR:)
  • 检查代码是否包含后缀(如.L代表伦敦证交所的个股)
  • 尝试指定时间范围或其他字段(如=GOOGLEFINANCE("LON:GSPX", "close", TODAY()-1, TODAY()))

2. 选择静态结构的数据源

优先用晨星、Investing.com等以静态HTML为主的网站,避免纯JS渲染的页面:

  • 用IMPORTHTML抓取表格:表格结构相对稳定,索引变化概率远低于XPath
  • 若需单字段抓取,用IMPORTXML的相对XPath替代绝对路径,比如:
    =IMPORTXML("https://www.morningstar.co.uk/uk/funds/snapshot/snapshot.aspx?id=F00000OQK5", "//span[contains(@class, 'priceValue')]/text()")
    
    用contains()匹配class或文本,避免因页面元素ID动态变化导致失效。

3. 自定义脚本适配动态页面

对于雅虎财经这类JS渲染的网站,用Google Apps Script的UrlFetchApp获取页面源码,通过正则提取数据:

  • 核心思路:找到页面源码中价格对应的固定格式(如雅虎财经的"regularMarketPrice":{"raw":X.X})
  • 正则表达式可通过浏览器「查看页面源码」搜索价格值,找到对应的字段格式后编写。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 00:13:19