Cómo crear un fragmento de documento en Google Apps Script? [duplicar]

0

Pregunta

Estoy creando una aplicación en Hojas de cálculo de Google con Google App Script. La aplicación de la raspa de una página web y devuelve una página HTML para mí como una cadena. Estoy tratando de insertar en un DOM por lo que puedo usar DOM consultas para encontrar los datos que necesita dentro de la página. Normalmente, usted podría hacer que la creación de un fragmento de documento con document.createDocumentFragment()o la creación de un desprendimiento de elemento con document.createElement(), a continuación, ajuste el innerHTML con la cadena HTML. El problema es que el GAS no tiene un document contexto.

¿Alguien tiene ideas para una solución, o tal vez alguna otra manera a la consulta de una gran cadena de texto?

p.s. Mi primer instinto fue el de encontrar los datos que necesitas como un API pero no puedo encontrar algo que se adapte a mis necesidades. Pantalla de raspar es mi último recurso.

ACTUALIZACIÓN: Gracias por quien la encontraba y etiquetado de la cuestión similar. ¡Hasta la vista de la biblioteca para la GS es la solución correcta. https://stackoverflow.com/a/61928025/735374

1

Mejor respuesta

0

Usted no puede crear un DOM en Google Apps Script, al menos no en el código del lado del servidor.

Para consultar la cadena HTML, necesita saber exactamente donde en la página de los datos que usted necesita estará con identificable subcadenas como elemento de contención de IDs, pero muchas veces estos son generados por lo que no puede ser conocido. HTML también es famoso no puede ser analizado por RegEx.

Usted podría hacer esto como Hojas de add-on, si la secuencia de comandos de ejecución desatendida no es necesario. En este caso, el flujo de trabajo sería a lo largo de las líneas de:

  • Raspe el código HTML de datos como una cadena
  • Crear un HTMLOutput objeto con la createHtmlOutput(html) método
  • Abra el archivo HTML como un diálogo o de la barra lateral y haga su querySelector llamadas dentro del cuadro de diálogo. (En este caso, usted tendrá que agregar estos como código dentro de un <script> la etiqueta que se ejecuta en la carga de la página
  • Devolver los valores a Google Apps Script usando google.script.run
2021-11-23 10:49:27

I hope this is helpful to you

Considere la posibilidad de mover esta respuesta aquí
TheMaster

Gracias, terminé usando la fuerza bruta de las regex, que pasó a trabajar para mi situación específica, pero estas son buenas sugerencias.
T Nguyen

En otros idiomas

Esta página está en otros idiomas

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