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

使用Google Script与Cheerio抓取CoinDesk比特币价格失败,求帮助

解决Google Script提取CoinDesk比特币实时价格失败的问题

问题描述

需要从CoinDesk比特币价格页面提取class为typography__StyledTypography-owin6q-0 fZpnIj的span标签内的实时价格(示例值为$23,073.15),但以下Google Script代码执行失败:

var URL = "https://www.coindesk.com/price/bitcoin/";
var response = UrlFetchApp.fetch(URL);
var $ = Cheerio.load(response.getContentText());
var itemsOfInterest = $('span.typography__StyledTypography-owin6q-0 fZpnIj').text();

问题原因及修正方案

1. CSS选择器错误

原代码里的选择器写法有误:当元素同时拥有多个class时,CSS选择器需要用.连接不同class,空格代表「后代元素」,而非同一元素的多class标识。正确的选择器应该是:

$('span.typography__StyledTypography-owin6q-0.fZpnIj').text()

2. 反爬拦截问题

CoinDesk可能会拦截UrlFetchApp的默认请求(默认User-Agent为非浏览器标识),需要添加请求头模拟浏览器访问:

修正后的完整代码:

function getBitcoinPrice() {
  var URL = "https://www.coindesk.com/price/bitcoin/";
  var options = {
    headers: {
      "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
    }
  };
  var response = UrlFetchApp.fetch(URL, options);
  var $ = Cheerio.load(response.getContentText());
  var bitcoinPrice = $('span.typography__StyledTypography-owin6q-0.fZpnIj').text();
  Logger.log(bitcoinPrice); // 输出价格到日志
  return bitcoinPrice;
}

3. 额外注意事项

  • 需先在Google Script中启用Cheerio库:通过「资源」→「库」添加,库ID为1ReeQ6WO8kKNxoaA_O0XEQ589cIrRvEBA9qcWpNqdOP17i47u6N9M5Xh0
  • 若后续网站前端更新导致class名变更,需重新检查页面元素的class属性并更新选择器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:30:58