截断输出时使用 UrlFetchApp 搜索字符串

时间:2021-01-22 07:08:14

标签: google-apps-script google-sheets

我有一长串要搜索特定字符串的网站。在这种情况下,字符串是“cast area”。我想出了这个脚本来查看列表(我将它限制在我知道有有效输出的行中)。在日志中,它说 Logging output too large. Truncating output. 我在网上读到这应该无关紧要 - 它对于日志来说太大了,而不是放弃查看其余部分。

function getData() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheetByName('URLs');

 var firstURL = 24673
 var lastURL = 24678

 var i
 for (i=firstURL; i<lastURL; i++) {

   var data = sheet.getRange(i,1).getValue();
   var response = UrlFetchApp.fetch(data).getContentText();

   Logger.log(data)
   //Logger.log(response)

    if (response.toLowerCase().indexOf("cast area")>-1) {
      Logger.log(1)
    } 
  }
}

为了测试它,这里是包含 url 的代码,在页面的“注释”部分中带有“CAST AREA”字样。我希望日志应该返回数字 1 以表明它有效。

function getData() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheetByName('URLs');

 var data = "https://elanthipedia.play.net/Faenella%27s_Grace";
 var response = UrlFetchApp.fetch(data).getContentText();

 Logger.log(data)
 //Logger.log(response)

 if (response.indexOf("CAST AREA")>-1) {
  Logger.log(1)
 }
}

1 个答案:

答案 0 :(得分:0)

如果您想可视化对于日志输出来说太大的 contentText - 将此数据写入某处

最简单的解决方案是将其写入电子表格。

示例:

function getData() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheetByName('URLs');

 var data = "https://elanthipedia.play.net/Faenella%27s_Grace";
 var response = UrlFetchApp.fetch(data).getContentText();
 sheet.getRange(sheet.getLastRow()+1,1).setValue(response);
}

显然,为了以更好的方式可视化数据,解析响应并将不同的对象写入电子表格的不同列是有意义的。

相关问题