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

Google Sheets ImportXML抓取含点雅虎财经股票报「资源未找到」

解决Google Sheets抓取雅虎财经带点股票代码的问题

问题原因

你当前使用的XPath依赖的页面元素类名(livePrice svelte-mgkamr)已随雅虎财经页面结构更新失效,且IMPORTXML仅能抓取静态HTML,部分动态渲染的价格内容无法直接获取,导致带点格式的股票代码(如SHELL.AS)抓取失败。

解决方案

方案1:调整IMPORTXML的XPath路径

尝试使用匹配雅虎财经当前价格元素的XPath,替换原有公式:

=INDEX(IMPORTXML("https://finance.yahoo.com/quote/"&A11,"//fin-streamer[@data-field='regularMarketPrice']"),1)

如果上述公式仍无效,可尝试另一个基于静态文本的XPath:

=INDEX(IMPORTXML("https://finance.yahoo.com/quote/"&A11,"//span[contains(@class, 'Fw(b) Fz(36px)')]"),1)

方案2:使用Google Apps Script自定义函数(更稳定)

若IMPORTXML因动态加载问题持续失效,可通过自定义脚本抓取价格:

  1. 打开Google Sheets,点击「扩展程序」>「Apps脚本」
  2. 删除默认代码,粘贴以下脚本:
function getYahooStockPrice(ticker) {
  if (!ticker) return "无股票代码";
  const url = `https://finance.yahoo.com/quote/${encodeURIComponent(ticker)}`;
  const response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
  const htmlContent = response.getContentText();
  
  // 正则匹配实时价格的原始数值
  const priceMatch = htmlContent.match(/"regularMarketPrice":{"raw":(\d+\.?\d*)/);
  return priceMatch ? parseFloat(priceMatch[1]) : "无法获取价格";
}
  1. 保存脚本(命名如YahooStockPrice),返回表格
  2. 在单元格中输入=getYahooStockPrice(A11)即可获取对应股票价格

注意事项

  • 雅虎财经页面结构可能再次更新,若XPath或正则失效,需重新检查页面元素调整匹配规则
  • Google Apps Script有调用频率限制,大量抓取时需注意避免触发限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 02:13:11