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

如何爬取雅虎财经奥斯陆交易所股票价格并导入Google Sheets

原可正常抓取美股标的的公式:
=REGEXEXTRACT(INDEX(IMPORTXML("https://finance.yahoo.com/quote/CVNA?p=CVNA";"//*[@id='quote-header-info']");;3); "\d+.\d+|\d+")+0

报错根因

原公式依赖固定索引提取quote-header-info节点下的第3段内容,雅虎财经对非美股标的的页面DOM节点排布有差异,奥斯陆交易所的NEL.OL对应页面的股价所在节点位置发生了变化,导致正则匹配不到有效数值触发报错。

可行解决方案

方案1:使用精准通用XPath(兼容所有雅虎财经标的,推荐)

直接抓取股价专属属性节点,不需要索引定位和正则提取,稳定性远高于原写法:

  • 若你使用的Google Sheets版本采用分号作为函数参数分隔符(欧洲区域常用),公式如下:
    =VALUE(IMPORTXML("https://finance.yahoo.com/quote/NEL.OL?p=NEL.OL"; "//*[@data-testid='qsp-price']/@data-value"))
  • 若使用逗号作为参数分隔符,公式如下:
    =VALUE(IMPORTXML("https://finance.yahoo.com/quote/NEL.OL?p=NEL.OL", "//*[@data-testid='qsp-price']/@data-value"))
    该写法也兼容CVNA等美股标的,替换URL中的股票代码即可通用。

方案2:使用原生GOOGLEFINANCE函数(最稳定)

Google Sheets自带的金融数据接口原生支持奥斯陆交易所标的,不需要爬取第三方页面,不会因为页面结构更新失效,直接输入公式即可返回实时股价:
=GOOGLEFINANCE("NEL.OL")

方案3:适配原有逻辑的调整方式

如果要保留原有的正则+INDEX的写法逻辑,可先单独运行=IMPORTXML("https://finance.yahoo.com/quote/NEL.OL?p=NEL.OL";"//*[@id='quote-header-info']")查看返回的数组内容,找到包含股价的数组序号,替换原公式中INDEX的第3位索引值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:24:04