Comment créer un fragment de document dans Google Apps Script? [dupliquer]

0

La question

Je suis la création d'une application dans des Feuilles de calcul Google à l'aide de Google App Script. L'application gratte un page web et renvoie une page HTML à moi comme une chaîne de caractères. J'essaie de l'insérer dans un DOM afin que je puisse utiliser DOM requêtes pour trouver les données dont j'ai besoin à l'intérieur de la page. Normalement, vous pourriez le faire par la création d'un fragment de document avec document.createDocumentFragment()ou la création d'un décollement de l'élément avec document.createElement()ensuite le innerHTML avec la chaîne HTML. Le problème est, de GAZ n'ont pas de document contexte.

Quelqu'un aurait-il des idées pour une solution de contournement, ou peut-être une autre façon d'interroger une grande chaîne de texte?

p.s. Mon premier instinct a été de trouver les données dont j'ai besoin aussi d'une API, mais je ne peux pas trouver quelque chose qui répond à mes besoins. Capture d'écran est mon dernier recours.

Mise à JOUR: Merci pour celui qui l'a trouvé et étiqueté de la même question. Cheerio de la bibliothèque de la GS est la bonne solution. https://stackoverflow.com/a/61928025/735374

1

La meilleure réponse

0

Vous ne pouvez pas créer un DOM dans Google Apps Script, au moins pas dans le code côté serveur.

Afin d'interroger la chaîne HTML, vous devez savoir exactement où dans la page, les données que vous devez être identifiables sous-chaînes comme élément contenant les Id - mais souvent celles-ci sont générées et ne peut donc pas être connu. HTML est aussi célèbre dans l'impossibilité d'être analysée par des RegEx.

Vous pourriez potentiellement faire comme les Feuilles de add-on, si le fait d'avoir le script de s'exécuter sans surveillance n'est pas requise. Dans ce cas, le flux de travail serait long des lignes de:

  • Gratter les données HTML comme une chaîne de caractères
  • Créer un HTMLOutput objet à l'aide de la createHtmlOutput(html) méthode
  • Ouvrez le code HTML comme une boîte de dialogue ou la barre latérale et de faire de votre querySelector les appels à l'intérieur de la boîte de dialogue. (Dans ce cas, vous devrez ajouter du code à l'intérieur d'un <script> balise qui fonctionne sur le chargement de la page
  • Retourner les valeurs de Google Apps Script à l'aide de google.script.run
2021-11-23 10:49:27

I hope this is helpful to you

Envisager de déplacer cette réponse ici
TheMaster

Merci, j'ai fini par utiliser la force brute regex qui est arrivé de travailler pour ma situation particulière, mais ce sont de bonnes suggestions.
T Nguyen

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................