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

Google Sheets仅输出URL重定向地址的Apps Script实现问询

Google Sheets 重定向抓取自定义函数调整方案

核心修改逻辑

原代码会将原始URL+所有重定向跳转地址存入数组并整体返回,导致单元格溢出输出全链路内容,只需要调整返回值的取值为数组最后一个元素,即可仅输出最终落地的URL,完全适配下拉批量填充的使用场景。

调整后可直接替换的脚本代码

function getRedirects(url) {
  // 空值入参直接返回,减少无效请求
  if (!url) return '';
  const params = {
    followRedirects: false,
    muteHttpExceptions: true,
    timeout: 10000
  };
  const urlChain = [url];

  while (true) {
    const currentUrl = urlChain[urlChain.length - 1];
    const response = UrlFetchApp.fetch(currentUrl, params);
    const statusCode = response.getResponseCode();
    // 遇到非3xx状态码时,说明已到达最终落地页
    if (statusCode < 300 || statusCode > 399) {
      // 仅返回链路末尾的最终地址
      return urlChain[urlChain.length - 1];
    }
    const nextUrl = response.getHeaders()['Location'];
    // 无跳转地址时终止循环
    if (!nextUrl) break;
    urlChain.push(nextUrl);
    // 限制最多追踪10跳,避免循环跳转导致脚本卡死
    if (urlChain.length > 10) break;
  }
  return urlChain[urlChain.length - 1];
}

实际使用说明

  • 在目标列对应单元格输入=getRedirects(待处理URL所在单元格),例如URL存在A列时,B2单元格输入=getRedirects(A2),下拉即可批量处理
  • 无跳转行为的原始URL,函数会直接返回原地址,不会出现空值
  • 单日调用存在Apps Script配额限制,数千条URL可拆分批次处理,避免触发接口限流
  • 内置10跳循环上限,不会因站点的循环重定向逻辑导致脚本运行卡死

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 05:06:09