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

如何将大豆商品价格导入谷歌表格?现有方法报错求助

解决Google Sheets IMPORTXML抓取大豆价格失败的问题

常见失败原因

  • 动态渲染内容:多数财经网站的实时价格是通过JavaScript动态加载的,IMPORTXML仅能抓取静态HTML源码,无法获取JS生成的内容
  • XPath定位失效:网站DOM结构可能更新,你之前复制的XPath路径已经过时
  • 公式语法错误:原公式存在引号嵌套错误,导致Sheets无法正确解析
  • 反爬拦截:部分网站会识别并拦截IMPORTXML这类自动化请求,返回错误或空内容

针对tradingeconomics.com的修正方案

  1. 修复公式引号格式
    原公式的引号嵌套错误,正确写法应该用单引号包裹XPath(或对双引号转义):
    =IMPORTXML("https://tradingeconomics.com/commodity/soybeans", "//*[@id='p']/text()")
    
  2. 换用IMPORTHTML抓取表格数据
    如果价格是动态加载的,IMPORTXML无法直接获取,可尝试抓取页面的静态表格:
    =IMPORTHTML("https://tradingeconomics.com/commodity/soybeans", "table", 1)
    
    该公式会提取页面第一个表格,你可以从中筛选出大豆价格对应的行/列。

针对indexmundi.com的修正方案

  1. 修正公式与XPath
    同样先修复引号问题,同时补充/text()确保提取文本内容:
    =IMPORTXML("https://www.indexmundi.com/commodities/?commodity=soybeans&months=60", "//*[@id='futuresPanel']/span/text()")
    
  2. 抓取历史价格表格
    若动态元素无法抓取,改用IMPORTHTML提取页面的历史价格表格:
    =IMPORTHTML("https://www.indexmundi.com/commodities/?commodity=soybeans&months=60", "table", 2)
    

动态内容的终极解决办法

如果上述方法都失效,说明网站采用了动态渲染或反爬策略,可通过Google Apps Script编写自定义函数:

  1. 打开Sheets,点击「扩展程序」→「Apps脚本」
  2. 粘贴以下代码:
    function GETSOYBEANPRICE() {
      const url = "https://tradingeconomics.com/commodity/soybeans";
      const response = UrlFetchApp.fetch(url, {muteHttpExceptions: true});
      const html = response.getContentText();
      // 匹配价格节点的正则表达式,可根据网站DOM调整
      const priceMatch = html.match(/<span[^>]*id="p"[^>]*>([\d.]+)<\/span>/);
      return priceMatch ? priceMatch[1] : "无法获取价格";
    }
    
  3. 保存脚本后,在Sheets单元格中输入=GETSOYBEANPRICE()即可获取价格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 11:42:22