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

如何从NSE网站导入Issued Cap等数据到Google Sheets

问题根因

内置导入函数无法获取数据的核心原因有两点:

  • NSE公开API设置了反爬校验,要求请求携带合法的浏览器User-Agent、Referer请求头,且需要先访问官网主页获取有效会话Cookie,Google Sheets内置函数不支持自定义请求头、维持会话,所有请求会被直接拦截,拿不到真实返回内容
  • IMPORTHTML、IMPORTXML仅支持解析静态HTML/XML结构内容,目标接口返回的是JSON格式数据,本身就不符合这两个函数的解析要求,必然返回报错。
可落地解决方案

方案1:自定义函数自动拉取(支持自动刷新,最稳定)

通过Google Apps Script编写自定义函数,模拟正常浏览器请求逻辑绕过校验,操作步骤如下:

  • 打开目标Google Sheets文件,点击顶部菜单栏「扩展程序」→「Apps Script」进入脚本编辑页
  • 清空编辑器内默认的示例代码,粘贴以下代码:
function GET_NSE_CAP(symbol) {
  const reqHeaders = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "Referer": `https://www.nseindia.com/get-quotes/equity?symbol=${symbol}`,
    "Accept": "application/json"
  }
  // 先请求官网首页获取有效会话Cookie
  UrlFetchApp.fetch("https://www.nseindia.com", {headers: reqHeaders})
  // 请求目标股权行情接口
  const apiRes = UrlFetchApp.fetch(`https://www.nseindia.com/api/quote-equity?symbol=${symbol}`, {headers: reqHeaders})
  const resJson = JSON.parse(apiRes.getContentText())
  // 提取指定字段,适配2022-06-11版本接口结构
  const issuedCap = resJson.securityInfo.issuedCap
  const freeFloatMktCap = resJson.securityInfo.ffmc
  // 返回二维数组,自动横向填充两个单元格
  return [[issuedCap, freeFloatMktCap]]
}
  • 点击编辑器顶部保存按钮,给项目自定义命名(比如NSEData),首次运行时按照弹窗提示完成Google账号授权:选择「高级」→「转到(你的项目名)」即可,这是Google官方的脚本安全校验,无数据安全风险
  • 回到表格页面,在需要展示数据的单元格输入公式 =GET_NSE_CAP("TRITURBINE"),回车后当前单元格会返回Issued Cap.数值,右侧相邻单元格自动填充Free Float Market Cap数值。如果需要设置数据自动刷新,可以在脚本里添加时间驱动触发器,设置固定间隔自动重算即可。

方案2:手动导入方案(无需写代码,仅适合一次性取数)

如果不需要数据自动更新,可以用手动方式快速取数:

  • 用本地浏览器打开目标API地址,确认页面正常返回JSON格式的全量数据后,全选复制所有文本内容
  • 回到Google Sheets,点击顶部菜单栏「数据」→「导入」,选择粘贴的JSON内容,按照导入向导选择解析为结构化表格,之后手动定位到需要的两个字段即可。该方案缺点是数据无法自动更新,每次获取最新值都需要重复复制粘贴操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 20:09:35