Como criar um fragmento de documento no Script do Google Apps? [duplicado]

0

Pergunta

Eu estou criando um aplicativo de Planilhas do Google usando o Google App Script. O aplicativo varre uma página da web e retorna uma página HTML para mim como uma seqüência de caracteres. Eu estou tentando inseri-lo em um DOM para que eu possa usar o DOM consultas para encontrar os dados de que preciso dentro da página. Normalmente, você pode fazer isso criando um fragmento de documento com document.createDocumentFragment()ou a criação de um destacado elemento com document.createElement()em seguida , definindo o innerHTML com a seqüência de caracteres HTML. O problema é que o GÁS não tem um document contexto.

Alguém tem ideias para uma solução alternativa, ou talvez alguma outra forma de consulta de uma grande seqüência de caracteres de texto?

p.s. Meu primeiro instinto foi o de encontrar os dados que eu preciso de uma API, mas eu não consigo encontrar nada que atende as minhas necessidades. Screen scraping " é o meu último recurso.

UPDATE: Obrigado por quem o encontrasse e marcou a semelhante pergunta. Cheerio biblioteca para GS é a solução correta. https://stackoverflow.com/a/61928025/735374

1

Melhor resposta

0

Você não pode criar um DOM no Google Apps Script, pelo menos não no código do lado do servidor.

Para consultar o HTML seqüência de caracteres que você precisa saber exatamente onde na página os dados que você precisa vai ser com identificáveis textos como o elemento que contém as IDs - mas muitas vezes estas são gerados e, portanto não pode ser conhecido. HTML também é famosa não é possível de ser analisado por RegEx.

Você poderia fazer isso como Folhas de suplemento, se a execução do script automática não é necessária. Neste caso, o fluxo de trabalho seria ao longo das linhas de:

  • Raspar o HTML de dados como uma seqüência de caracteres
  • Criar um HTMLOutput objeto usando o createHtmlOutput(html) método
  • Abra o HTML como um diálogo ou barra lateral e faça o seu querySelector chamadas dentro da caixa de diálogo. (Neste caso, você terá que adicioná-los como código dentro de um <script> tag que é executado no carregamento da página
  • Retornar os valores para o Google Apps Script usando google.script.run
2021-11-23 10:49:27

I hope this is helpful to you

Considere mover esta resposta aqui
TheMaster

Obrigado, acabei usando a força bruta regex que passou a trabalhar para o meu situação específica, mas estas são boas sugestões.
T Nguyen

Em outros idiomas

Esta página está em outros idiomas

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