URLFetchApp获取URL状态码时部分URL卡顿,求超时跳过方案
问题:处理URL状态码时的卡顿与超时跳过需求
我正在遍历电子表格中的URL列表,获取响应状态码以便团队及时发现404错误。大部分URL都能正常处理,但部分URL无任何返回,导致循环卡顿。
我有两个疑问:
- 有人推测这可能是这些URL的Cookie问题,但我不知道该如何处理。
- 有没有办法在几秒后跳过无返回的URL?我知道URLFetchApp没有超时选项,有没有适用于此场景的JavaScript技巧?
现有代码
获取状态码的函数:
function getStatusCode(url) { var options = { 'muteHttpExceptions': true, 'followRedirects': false } var url_trimmed = url.trim(); // 去除可能存在的空格 var response = URLFetchApp.fetch(url_trimmed, options); return response.getResponseCode(); }
调用函数的循环代码:
var finalOutput = []; var counter = 0; // 仅用于日志记录 var code = ''; var startRange = 2; for (c = 0; c < 10; c++) { var range = sheet.getRange(startRange,3,10,2); var urls = range.getValues(); for (u = 0; u < urls.length; u++) { code = getStatusCode(urls[u][0]); finalOutput.push(urls[u][0],code); counter++; } } range.setValues(finalOutput); counter = 0; startRange += 10; // 切换到下一组10行 finalOutput = []; // 重置数组
导致卡顿的示例URL
- https://www.npr.org/programs/ted-radio-hour/694278104/bias-and-perception
- https://www.mckinsey.com/business-functions/strategy-and-corporate-finance/our-insights/how-to-master-the-seven-step-problem-solving-process?cid=other-eml-ttn-mip-mck&hlkid=95d3bf6d8de34e0d92d75ccfa877f204&hctky=2563923&hdpid=7d90901a-d6e3-4c0d-8a7c-609a2217ae8c
注:npr.org的链接似乎总会引发该问题。
内容的提问来源于stack exchange,提问作者Arend Raifsnider
相关产品推荐
相关产品推荐

