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

使用Google Sheets IMPORTDATA导入Steam价格历史数据遇错求助

解决Steam市场价格历史数据导入Google Sheets的问题

问题根源

  1. 公式链接错误:你要导入的是Exalted Fractal Horns of Inner Abysm的数据,但当前IMPORTDATA使用的是普通版本的物品名称,导致请求资源不匹配。
  2. Steam反爬拦截:IMPORTDATA无法模拟浏览器请求头,Steam会拒绝这类无标识的请求,直接返回错误。
  3. 数据格式不兼容:Steam价格历史返回的是JSON结构,IMPORTDATA仅能处理CSV/TSV类纯文本表格,无法解析JSON。

可行解决方案

使用Google Apps Script自定义函数

IMPORTDATA无法满足需求,换用脚本可绕过反爬并解析JSON数据:

  1. 打开目标Google Sheets,点击顶部菜单「扩展程序」→「Apps Script」
  2. 清空默认代码,粘贴以下脚本:
function getSteamPriceHistory(itemName) {
  // 构造正确请求链接,自动编码特殊字符
  const url = `https://steamcommunity.com/market/pricehistory/?currency=1&appid=570&market_hash_name=${encodeURIComponent(itemName)}`;
  // 模拟浏览器请求头,避免被Steam拦截
  const requestOptions = {
    headers: {
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
    }
  };
  
  try {
    const response = UrlFetchApp.fetch(url, requestOptions);
    const rawData = JSON.parse(response.getContentText());
    // 将JSON数据转换为表格格式
    const tableData = [['日期', '平均价格', '成交量']];
    rawData.prices.forEach(entry => {
      tableData.push([new Date(entry[0]), entry[1], entry[2]]);
    });
    return tableData;
  } catch (error) {
    return ['请求失败:', error.toString()];
  }
}
  1. 点击脚本编辑器的「保存」按钮,回到表格,在任意空白单元格输入:
=getSteamPriceHistory("Exalted Fractal Horns of Inner Abysm")
  1. 首次运行会弹出权限请求,按提示完成授权即可获取完整数据。

额外提示

  • 若遇到请求被限制,可在脚本中添加Utilities.sleep(1500)(延迟1.5秒)降低请求频率。
  • 若Steam调整数据返回格式,需对应修改脚本中rawData.prices的解析逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:31:12