Как получить URL для обновления: ImportHTML не извлекает новые данные в скриптах Google Apps - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть таблица, которая извлекает результаты игры в гольф с помощью ImportHTML ("http://www.augusta.com/masters/leaderboard","table",1)", которую я хочу обновлять каждую минуту при обновлении результатов. Я создал триггер скрипта Служб Google для запуска каждую минуту. Триггер запускается и«обновляется» каждую минуту, но он извлекает СТАРЫЕ ДАННЫЕ с веб-сайта и не получает ни одного из новых результатов. Как получить его, чтобы получить новые результаты?

Я создал триггер Google Apps Scriptзапускать каждую минуту (см. код).

function getData() { 
  var sheetName = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("AUGUSTA"); 
  var queryString = Math.random(); 
  var cellFunction = '=IMPORTHTML("http://www.augusta.com/masters/leaderboard","table",1)';

    sheetName.getRange('A1').setValue(cellFunction); 

Триггер запускается и он «обновляется» каждую минуту, но он вытаскивает СТАРЫЕ ДАННЫЕ с веб-сайта и не получает ни одного из новых результатов.Единственный способ заставить его корректно обновляться - это вручную ввести ячейку и повторно ввести URL-адрес (слегка его изменить, а затем исправить). Как получить его, чтобы получить новые оценки?

1 Ответ

0 голосов
/ 12 апреля 2019

попробуйте это:

По общему признанию, это своего рода глупый способ сделать это, когда вы можете просто вставить формулу в качестве функции ячейки. Но, похоже, это простой способ получить данные в массив.

function getGolfData() { 
  var ss=SpreadsheetApp.getActive();
  var sh=ss.insertSheet(); 
  sh.getRange(1,1).setFormula('=IMPORTHTML("http://www.augusta.com/masters/leaderboard","table",1)');
  SpreadsheetApp.flush();
  Utilities.sleep(10000);
  var rg=sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn());
  var vA=rg.getValues();
  ss.deleteSheet(sh);
  var osh=ss.getSheetByName('Augusta');
  osh.getRange(1,1,vA.length,vA[1].length).setValues(vA);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...