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

Google Apps Script调用UrlFetchApp获取GST验证页面遭429错误

解决Google Apps Script请求Signalx GST验证页面返回429错误的方案

核心问题原因

网站通过请求头识别出请求来自非浏览器环境(Google Apps Script默认请求标识),触发了频率限制。以下是针对性解决步骤:

1. 模拟浏览器请求头

为请求添加浏览器User-Agent标识,让网站判定请求来自正常浏览器:

function get_gst_addrss(){
  var url = "https://app.signalx.ai/gstin-verification/33ABBCS1600H1ZY";
  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 websiteContent = UrlFetchApp.fetch(url, options).getContentText();
  Logger.log(websiteContent);
}

2. 启用异常静默查看完整响应

添加muteHttpExceptions选项,获取服务器返回的完整错误信息,辅助排查限制规则:

function get_gst_addrss(){
  var url = "https://app.signalx.ai/gstin-verification/33ABBCS1600H1ZY";
  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"
    },
    muteHttpExceptions: true
  };
  var response = UrlFetchApp.fetch(url, options);
  Logger.log("响应状态码:" + response.getResponseCode());
  Logger.log("完整响应内容:" + response.getContentText());
}

3. 添加指数退避重试机制

针对临时频率限制,通过指数退避的重试策略绕过限制:

function get_gst_addrss(){
  var url = "https://app.signalx.ai/gstin-verification/33ABBCS1600H1ZY";
  var maxRetries = 3;
  var retryDelay = 1000; // 初始延迟1秒
  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"
    },
    muteHttpExceptions: true
  };

  for(var i = 0; i < maxRetries; i++){
    var response = UrlFetchApp.fetch(url, options);
    var code = response.getResponseCode();
    if(code === 200){
      Logger.log("请求成功:" + response.getContentText());
      return;
    } else if(code === 429){
      Logger.log(`第${i+1}次请求触发限制,等待${retryDelay/1000}秒后重试`);
      Utilities.sleep(retryDelay);
      retryDelay *= 2; // 指数退避,每次延迟翻倍
    } else {
      Logger.log(`请求失败,状态码:${code}`);
      return;
    }
  }
  Logger.log("重试次数耗尽,无法获取内容");
}

4. 提取目标字段并写入表格

成功获取页面后,用正则表达式提取所需字段并写入Google表格:

function get_gst_addrss(){
  var url = "https://app.signalx.ai/gstin-verification/33ABBCS1600H1ZY";
  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 websiteContent = UrlFetchApp.fetch(url, options).getContentText();

  // 提取Legal Name of Business
  var legalNameMatch = websiteContent.match(/Legal Name of Business.*?<span[^>]*>([^<]+)<\/span>/i);
  var legalName = legalNameMatch ? legalNameMatch[1].trim() : "未找到";

  // 提取Principal Place of Business
  var principalAddrMatch = websiteContent.match(/Principal Place of Business.*?<span[^>]*>([^<]+)<\/span>/i);
  var principalAddr = principalAddrMatch ? principalAddrMatch[1].trim() : "未找到";

  Logger.log(`Legal Name of Business: ${legalName}`);
  Logger.log(`Principal Place of Business: ${principalAddr}`);
  
  // 写入到Google表格指定单元格
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.getRange("A1").setValue(legalName);
  sheet.getRange("B1").setValue(principalAddr);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 09:02:05