Google Sheets使用ImportXML提取span文本获取地板价返回#NV求助
Google Sheet导入Digitaleyes站点地板价失败的解决方法
你遇到的IMPORTXML返回#NV错误,是因为该站点的地板价数据属于JavaScript动态渲染内容,IMPORTXML仅能抓取页面静态HTML内容,无法识别JS运行后才生成的元素,你所用的XPath对应的节点在初始静态源码中不存在,因此抓取失败。
你可以通过自定义Google Apps Script解决该问题,操作步骤如下:
- 打开目标Google Sheet,点击顶部菜单栏「扩展程序」>「Apps 脚本」
- 删除编辑器内默认的示例代码,粘贴如下代码:
function getTurtlesFloorPrice() { const targetUrl = "https://digitaleyes.market/collections/Turtles"; // 抓取页面静态内容 const pageContent = UrlFetchApp.fetch(targetUrl).getContentText(); // 匹配内嵌script标签中的地板价数据 const priceMatch = pageContent.match(/"floorPrice"\s*:\s*(\d+)/); if (priceMatch && priceMatch[1]) { // 单位转换:站点默认单位为lamport,转换为SOL可除以1e9,如需保留原单位可删除除法逻辑 return Number(priceMatch[1]) / 1000000000; } return "数据获取失败"; }
- 点击顶部「保存」按钮,给项目命名(可随意填写,比如「NFT数据抓取工具」),按照提示完成授权操作
- 返回Google Sheet页面,在任意空白单元格输入公式
=getTurtlesFloorPrice(),即可返回对应站点的Turtles系列地板价
如果需要定时更新数据,可以在Apps Script编辑器的「触发器」页面添加定时触发规则,设置为每小时/每天自动运行该函数更新价格。
内容的提问来源于stack exchange,提问作者Joex
相关产品推荐
相关产品推荐

