Será que vocês conseguiriam me ajudar?
Estive há meses buscando um código que substituísse a função IMPORThtml.
Seguinte: Faço uma captura de dados de ativos financeiros de alguns sites. O mais trivial seria usar a função GOOGLE FINANCE, certo?
Errado! O tipo de ativos que monitoro não tem cobertura do Google Finance (opções de ações: call e put)
A segunda opção seria usar o IMPORThtml ou IMPORT XML, mas depois de muito pesquisar em blogs, fóruns, ect, etc, descobri que o google "meio que sabota" essas duas funções e bloqueiam, de modo que sempre retornam erro.
Então cheguei até um forum, o Stack Overflow, onde encontrei um especialista que me ajudou com esse código onde finalmente consegui para fazer o google sheets buscar o valor.
function ultimoValorAdvfn()
const url = 'https://br.advfn.com/bolsa-de-valores/bovespa/vvarq170-ex-17-VVARQ170/cotacao';
const html = UrlFetchApp.fetch(url).getContentText();
return html.match(/class="PriceTextUp">(.*?)</)[1].trim();
Só que percebi um porém:
O código funcionou mas eu queria rodá-lo com outro site, no qual a URL da página de cada ativo é muito menor e mais fácil de montar.
Para eu montar uma função replicável para várias células ou vários ativos diferentes, ao mesmo tempo, tem um pedaço da URL
que ferra tudo.
Ex: Para o ativo VVARQ170 seria o pedaço mais importante da URL seria "... /vvarf130-ex-13-VVARf130/..",
só que esse pedaço " ex-13" não é constante para o ativoVVARF130
Hoje pode ser "ex-17", amanhã pode ser "ex-131" ou "ex-132"
Então se eu montasse a URL a partir do códigos dos ativos que estão em uma coluna, eu teria que ter em outra célula qual o "ex" daquela ativo.
Se fosse só um ou 2 ativos, beleza, eu faria na unha, o problema é que são pelo menos 20 em média, e vão sendo substituídos
conforme vão sendo vendidos e comprados ao longo do mês.
Tem um outro site que consulto que é o opcoes.net. onde a construção do link muito mais fácil
Por exemplo: Para consultar o mesmo ativo,o link é simplesmente opcoes.net/ VVARF130
A maior dificuldade é encontrar o endereçamento do código HTML do objeto que preciso (último valor de cotação).
Segue uma tentativa de representação da parte da página que preciso capturar.
VVARF130 - Cotação não ajustada
____VVARF130 - Volatilidade implícita
____VVAR3 - Cotação não ajustada
Min
Pri
Med
Ult
Max
Negócios
Vol. Fin.
____Min
Pri
Med
Ult
Max
____Min
Abe
Med
Ult
Max
21/05/2021
4,94
5,05
5,12
5,25
5,25
8
62.029,00
____
____11,73
11,92
11,90
11,87
12,14
20/05/2021
4,95
4,97
5,03
5,05
5,12
98
1.219.794,00
____208,00
293,00
271,93
312,00
349,25
____11,91
12,05
11,97
11,91
12,13
Então ficaria assim:
function ultimoValorAdvfn()
const url = 'https://opcoes.net.br/VVARF130';
const html = UrlFetchApp.fetch(url).getContentText();
return html.match(/?????="??????????" > ???????.trim();
Esse endereçamento dos objetos referentes aos valores em vermelho que não consigo buscar.
Mesmo copiando o Xpaht, não consigo.
Anexei os prints das páginas
Desde já muito obrigado pela atenção!