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

如何使用Cheerio爬取指定图片并插入到Google Sheets中

修正后代码
function insertGasStorageChartToSheet() {
  // 目标网页基础路径与完整路径
  const baseUrl = 'https://ir.eia.gov/ngs/';
  const pageUrl = baseUrl + 'ngs.html';
  
  // 请求获取网页源码
  const pageContent = UrlFetchApp.fetch(pageUrl, { muteHttpExceptions: true }).getContentText();
  const $ = Cheerio.load(pageContent);

  // 两种定位方式二选一即可,无需依赖元素索引,适配复用需求
  // 方式1:通过src属性精准匹配,稳定性更高
  const targetImg = $('img[src="ngs.gif"]');
  // 方式2:通过alt属性精准匹配
  // const targetImg = $('img[alt="Working Gas in Underground Storage Compared with Five-Year Range"]');

  // 校验是否找到目标图片,避免网页结构变更时报错
  if (targetImg.length === 0) {
    throw new Error('未找到指定图片,请检查网页结构是否更新');
  }

  // 拼接图片完整绝对路径
  const imgFullUrl = baseUrl + targetImg.attr('src');

  // 插入到当前激活工作表的A1单元格位置
  SpreadsheetApp.getActiveSheet().insertImage(imgFullUrl, 1, 1);
}
核心修改说明
  • 修正了元素定位逻辑:使用Cheerio的属性选择器直接匹配img标签的src或alt属性,不需要依赖元素索引,符合多场景复用的需求
  • 补充了相对路径转绝对路径的逻辑:原网页中img的src是相对路径,需要和网页的基础路径拼接后才能被正常访问加载
  • 新增了元素存在性校验,避免网页结构更新后代码无意义报错
  • 修复了原代码的语法错误:原代码中attr('src').find('ngs.gif')的写法不成立,attr()返回的是字符串,无法调用find方法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:15:03