【发布时间】:2018-08-11 03:11:16
【问题描述】:
我有一个包含 URL 列表的电子表格。 我正在尝试搜索 URL 是否包含特定类,并根据响应在其旁边的单元格中设置 0 或 1。 我已经制作了一个脚本,它可以达到目的,但是我遇到了执行超时错误,所以我只想有什么办法可以减少它的执行时间。
这里是代码
function ulrFetch(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
var class = ss.getRange(1, 5).getValue();
var lr = ss.getLastRow();
var urlList = ss.getRange(3, 8, lr-1).getValues();
var length = urlList.length
for (var i = 0;i<length;i++){
var url = urlList[i];
var response = UrlFetchApp.fetch(url.toString());
var result = response.getContentText();
var index = result.indexOf(class);
if (index > -1){
ss.getRange(i+3, 5).setValue('1');
}
else {
ss.getRange(i+3, 5).setValue('0');
}
}
}
提前致谢!!
【问题讨论】:
-
能问一下
var length = urlList.length的length的值吗?我认为在您的情况下,您可以使用fetchAll()。 fetchAll() 可以通过异步处理来工作。但是因为我也觉得length很大的时候可能用不上。 -
@Tanaike 感谢您的回复,urlList 的长度为 720
-
感谢您的回复。我发布了一个答案,因为我认为 fetchAll() 可能可以使用 720 个请求。你能确认一下吗?
标签: javascript google-apps-script google-sheets