esquiloesper...
Cyber Highlander
Moderador
7.1K Mensagens
2.2K Curtidas
Pois então @llen... O problema nem é apenas a função JS mas cada tabela em si: a estrutura (a maneira como é construída) irá interferir diretamente!
Para limitar os resultados você pode atuar na estrutura, delimitando assim o setor (ou setores) das linhas que entrarão na contagem.
Navegar é preciso, viver... também.
@llen
Zumbi
Registrado
6.1K Mensagens
241 Curtidas
Entendi.
Existe alguma maneira de delimitar o setor através do back-end, sendo que meu robô tá lendo o front e contando as linhas (algum tratamento ou algo do tipo)?
andremachado
Highlander
Registrado
3.3K Mensagens
2K Curtidas
@llen
Em um mundo ideal, os webmasters colocariam as linhas e aplicasse, nele, a sua função.
Infelizmente, porém, no mundo real, nem todos os webmasters seguem esse padrão e, logo, cada caso é um caso. O que você poderia fazer, de forma geral, é: sabendo que a tabela possui uma linha
56 6F 63 EA 20 E9 20 6D 75 69 74 6F 20 63 75 72 69 6F 73 6F 2E 2E 2E
----------------------------------------
Acer Aspire E5-471-30DG (Casa)
Samsung Book 550XDA-K07 (Trabalho)
@llen
Zumbi
Registrado
6.1K Mensagens
241 Curtidas
@llen
Então, bastaria que você pegasse todo o conteúdo que estivesse entre as tags e e aplicasse, nele, a sua função.
O conteúdo que eu quero está em um
@llen
O que você poderia fazer, de forma geral, é: sabendo que a tabela possui uma linha de título, subtrair 1 do resultado final.
Já pensei dessa forma, porém é uma página que possui uma tabela com vários títulos, um abaixo do outro, mas no código separados por . E dependendo do período que eu filtrar, alguns deixam de aparecer e o filtro é só de data.
andremachado
Highlander
Registrado
3.3K Mensagens
2K Curtidas
@llen
O conteúdo que eu quero está em um , porém existe mais de uma sessão dessa mesma tag na mesma tabela. Tem como contar só um específico da página? Não tem ID.
Já pensei dessa forma, porém é uma página que possui uma tabela com vários títulos, um abaixo do outro, mas no código separados por . E dependendo do período que eu filtrar, alguns deixam de aparecer e o filtro é só de data.
Basta fazer uma pequena alteração em sua função (que, aliás, possui um erro trivial: veja o que você está retornando no código que postou )
O código seria esse:
[code=JavaScript]const quantidadeLinhas = await page.evaluate(() => {
const tbd = document.getElementsByTagName("tbody")[0];
const tabela = tbd.getElementsByTagName("tr");
const num = tabela.length;
return num;
});[/code]
Neste caso, ele vai retornar a quantidade de linhas do primeiro tbody. Você pode alterar facilmente para os demais ou até criar um loop for.
56 6F 63 EA 20 E9 20 6D 75 69 74 6F 20 63 75 72 69 6F 73 6F 2E 2E 2E
----------------------------------------
Acer Aspire E5-471-30DG (Casa)
Samsung Book 550XDA-K07 (Trabalho)
@llen
Zumbi
Registrado
6.1K Mensagens
241 Curtidas
@llen
veja o que você está retornando no código que postou
Ah sim, eu havia alterado pra fazer uns testes, esqueci de corrigir antes de enviar o código aqui. Vou tentar fazer, obrigado!