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

从亚马逊获取ASIN图片至谷歌表格遇‘图片未找到’问题求助

问题原因与修复方案

核心问题

你的脚本返回“Image not found”,本质是fetchImageUrl函数没能从亚马逊页面提取到图片URL,主要原因有两个:

  • 亚马逊页面HTML结构已更新,原正则表达式/"large":"(https:[^"]+)"/匹配不到当前页面的图片地址
  • 亚马逊反爬机制拦截了UrlFetchApp的默认请求,返回的内容并非完整商品页

修复后的完整脚本

function fetchAndResizeImage(asin) {
  // 可根据实际使用的亚马逊站点修改域名,比如.ca/.co.uk等
  var url = "https://www.amazon.com/dp/" + asin;
  var imageUrl = fetchImageUrl(url);

  if (imageUrl) {
    try {
      var imageBlob = UrlFetchApp.fetch(imageUrl, {
        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"
        }
      }).getBlob();
      var resizedImageBlob = resizeImage(imageBlob, 10, 10);
      return resizedImageBlob;
    } catch (imgError) {
      return "Failed to fetch image";
    }
  } else {
    return "Image not found";
  }
}

function fetchImageUrl(url) {
  try {
    var response = UrlFetchApp.fetch(url, {
      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",
        "Accept-Language": "en-US,en;q=0.9"
      },
      followRedirects: true
    });
    var htmlContent = response.getContentText();
    
    // 匹配当前亚马逊商品页的主图高清地址
    var imageMatch = /data-a-hires="(https:[^"]+)"/.exec(htmlContent);
    if (imageMatch) {
      return imageMatch[1];
    }
    // 备用匹配规则,防止主规则失效
    var backupMatch = /src="(https:\/\/m.media-amazon.com\/images\/I\/[^"]+)"[^>]+class="a-dynamic-image/.exec(htmlContent);
    return backupMatch ? backupMatch[1] : null;
  } catch (error) {
    console.log("提取图片URL失败: " + error.toString());
    return null;
  }
}

function resizeImage(imageBlob, width, height) {
  var image = ImagesApp.open(imageBlob);
  // 保持图片比例,避免拉伸变形
  var resizedImage = image.getResizedImage(width, height, ImagesApp.ResizeQuality.HIGH);
  return resizedImage.getBlob();
}

关键修改点

  • 添加请求头:模拟浏览器请求,绕过亚马逊基础反爬拦截
  • 更新正则匹配规则:适配当前亚马逊静态HTML中的图片地址属性(data-a-hires对应商品主图的高清链接)
  • 增加备用匹配规则:主规则失效时,用备用规则兜底提取图片URL
  • 增强错误处理:在图片获取环节添加异常捕获,返回更明确的错误信息
  • 优化图片缩放:添加高质量缩放参数,避免图片模糊变形

额外注意事项

  • 如果使用非美国亚马逊站点,需要修改url中的域名(比如亚马逊德国站是amazon.de)
  • 若仍出现问题,可在脚本编辑器的「查看」→「日志」中查看具体错误信息,定位问题
  • 亚马逊页面结构可能随时更新,若后续再次失效,需重新调整正则匹配规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 18:17:49