web-dev-qa-db-fra.com

Surveiller les modifications de pages Web à l'aide de Google Spreadsheets

Je veux surveiller une page Web. La meilleure solution que j'ai trouvée était Google Spreadsheets.
(à l'exception de feed43 qui a des limites).

J'utilise la fonction importHTML de Google Spreadsheet qui met à jour la valeur de la cellule chaque fois que des données sont modifiées sur cette page Web.

Cependant, je ne sais pas comment enregistrer la valeur précédente quelque part et, si possible, ajouter la nouvelle valeur mise à jour à la ligne suivante de la feuille de calcul au lieu de remplacer les données de cette cellule.

4
Nigel

Oui, il est possible de faire cela avec un script simple comme celui-ci. Ce qu'il fait:

  1. Vérifiez si la valeur actuelle est égale à la dernière valeur "archivée".
  2. Sinon, archivez la valeur actuelle en insérant une ligne à cette fin.

Après avoir entré le script dans l'éditeur de script, vous devez créer un déclencheur correspondant: voir Ressources> Les déclencheurs de ce projet. Deux options sont: exécuter périodiquement ou lorsque les données sont modifiées. Le second est plus naturel pour cette tâche, mais dans le cas où onChange ne fonctionnerait pas pour vous (certaines personnes avaient des problèmes dans le passé), le déclenchement temporisé est une option.

function recordChanges() {
  var url = 'the URL of your spreadsheet';   // put URL here
  var ss = SpreadsheetApp.openByUrl(url);
  var sh = ss.getSheetByName('Sheet1');  // or whatever name
  var range = sh.getRange("A1:A2");    // assuming your data appears in A1 cell
  var values = range.getValues();
  if (values[0][0] != values[1][0]) {
    sh.insertRowAfter(1);
    sh.getRange("A2").setValue(values[0][0]);
  }
}

Cela peut continuer jusqu'à ce que vous atteigniez la limite de 200 000 cellules dans une feuille de calcul ... si la feuille de calcul contient une colonne, elle peut contenir jusqu'à 200 000 lignes. Ainsi, même si une autre ligne est ajoutée toutes les heures, elle durera plus de 20 minutes. années.

1
user79865