Extrair Canais do TGStat Automaticamente
Fazer pesquisa manual de canais no TGStat é uma das tarefas mais chatas que existe para quem trabalha com marketing no Telegram, análise de nicho ou prospecção. Você clica em "Show more" dezenas de vezes, copia nome por nome, perde tempo e ainda erra dados no meio do caminho. Este script JavaScript resolve tudo isso com uma única execução no console do navegador: ele extrai canais do TGStat automaticamente, clica no botão "Show more" sozinho, elimina duplicatas e salva os dados em arquivos TXT prontos para importar em planilhas ou outras ferramentas. Testei aqui, funciona — veja como usar.
O que este script faz por você
Clica em "Show more" sozinho
Sem precisar ficar na frente do PC apertando botão. O script detecta o botão de carregamento do TGStat e clica automaticamente a cada 8 segundos, esperando o conteúdo carregar antes de continuar.
Coleta nome, subscribers e link de cada canal
Para cada card visível na página, o script pega o nome do canal, a contagem de subscribers e o link direto para o canal no Telegram. Tudo formatado em uma linha por canal.
Nunca salva o mesmo canal duas vezes
Usa um Set interno para rastrear os links já processados. Mesmo se você rodar o script várias vezes na mesma sessão, os canais já capturados não aparecem duplicados no arquivo final.
Salva TXT por lote e arquivo consolidado
A cada rodada do loop, salva um arquivo TXT com os canais daquele lote. Quando termina tudo, gera um segundo arquivo com todos os dados acumulados da sessão inteira — ideal para importar em planilhas.
Roda só no seu navegador, sem servidor
O script executa 100% no console do Chrome ou Firefox. Nenhum dado sai para servidores externos. Você cola, roda e os arquivos são baixados diretamente para o seu computador.
Funciona em qualquer listagem do TGStat
Seja na busca por nicho, por categoria ou por país, enquanto a estrutura de cards col-12 col-sm-6 col-md-4 estiver presente na página, o script vai extrair os dados corretamente.
Como o script funciona internamente
Varre todos os cards visíveis
Usa querySelectorAll('div.col-12.col-sm-6.col-md-4') para encontrar cada card de canal na página atual e extrai nome, subscribers e link.
Salva o lote e clica em "Show more"
Salva os dados novos em um arquivo TXT imediatamente. Depois clica no botão lm-button do TGStat para carregar mais cards na página.
Aguarda 8 segundos e repete
Espera o TGStat carregar o novo conteúdo via AJAX antes de rodar o loop novamente. Quando não há mais botão, salva o arquivo final consolidado.
Para quem este script é útil
Analistas de nicho no Telegram
Mapear todos os canais de um segmento específico sem trabalho manual. Em minutos você tem uma lista completa com dados reais.
Profissionais de marketing e tráfego
Prospectar canais para divulgação paga ou parceria. A lista exportada já traz o link direto e o tamanho da audiência de cada canal.
Pesquisadores e jornalistas
Mapear canais de Telegram por tema, região ou idioma para análise de conteúdo, verificação de informação ou pesquisa acadêmica.
Desenvolvedores e entusiastas de automação
Aprender como scripts de console funcionam na prática — raspagem de dados, manipulação do DOM e download programático de arquivos.
Como usar o script passo a passo
Pré-requisitos
- Navegador Google Chrome ou Firefox (qualquer versão moderna)
- Acesso ao TGStat.com — sem necessidade de conta para listas públicas
- Permissão de download no navegador ativada (downloads automáticos de arquivos)
Passo 1 — Abra a listagem que deseja extrair no TGStat
Acesse tgstat.com, navegue até a categoria, busca ou ranking que você quer exportar. Aguarde a página carregar completamente com os primeiros cards visíveis. O script vai partir dali.
Passo 2 — Abra o console do navegador
- Chrome / Edge: pressione F12 → aba Console
- Firefox: pressione F12 → aba Console
- Mac: Cmd + Option + J
allow pasting antes de colar código. É um aviso padrão do navegador — isso é normal.
Passo 3 — Cole o script principal e pressione Enter
Copie o código abaixo completo, cole no console e pressione Enter. O script começa a rodar imediatamente.
(function initTGStatExtractor() {
window.acumulado = window.acumulado || '';
const jaProcessados = new Set();
function extrairCards() {
const cards = document.querySelectorAll('div.col-12.col-sm-6.col-md-4');
if (cards.length === 0) return '';
let lote = '';
cards.forEach(card => {
try {
const nome = card.querySelector('.font-16.text-dark')?.innerText.trim() || '';
const subs = card.querySelector('.font-12.text-truncate b')?.innerText.trim() || '';
// Pega QUALQUER link que contenha /channel/
const link = card.querySelector('a[href*="/channel/"]')?.href.trim() || '';
if (!nome || !subs || !link) return;
// Evita duplicados
if (jaProcessados.has(link)) return;
jaProcessados.add(link);
const linha = `${nome} | ${subs} subscribers | ${link}`;
lote += linha + '\n';
window.acumulado += linha + '\n';
} catch (e) {
console.error('Erro ao processar card', e);
}
});
console.log(`Cards novos processados: ${lote ? lote.split('\n').length - 1 : 0}`);
return lote;
}
function clicarShowMore() {
const botao = document.querySelector('button.lm-button');
if (botao && botao.innerText.toLowerCase().includes('show')) {
botao.click();
console.log("Botão 'Show more' clicado!");
return true;
}
console.log("Não há mais botão 'Show more'.");
return false;
}
function salvarTXT(conteudo, nomeArquivo) {
if (!conteudo || conteudo.trim() === '') return;
const blob = new Blob([conteudo], { type: "text/plain" });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = nomeArquivo;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
console.log(`Arquivo salvo: ${nomeArquivo}`);
}
function loop() {
const lote = extrairCards();
if (lote) {
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
salvarTXT(lote, `cards_lote_${timestamp}.txt`);
}
const clicou = clicarShowMore();
if (clicou) {
// Espera os novos cards carregarem
setTimeout(loop, 8000);
} else {
console.log("Todos os cards carregados.");
salvarTXT(window.acumulado, `todos_cards_acumulados_${Date.now()}.txt`);
}
}
loop();
})();
O que você vai ver no console durante a execução
Cards novos processados: 18
Arquivo salvo: cards_lote_2025-04-05T14-32-11-000Z.txt
Botão 'Show more' clicado!
Cards novos processados: 21
Arquivo salvo: cards_lote_2025-04-05T14-32-19-000Z.txt
Botão 'Show more' clicado!
...
Não há mais botão 'Show more'.
Todos os cards carregados.
Arquivo salvo: todos_cards_acumulados_1743860000000.txt
Formato de saída dos arquivos TXT
Cada linha do arquivo segue este padrão — fácil de importar em Excel, Google Sheets ou qualquer ferramenta de análise usando o delimitador |:
Nome do Canal | 45.2K subscribers | https://tgstat.com/channel/@nomecanal Outro Canal | 128K subscribers | https://tgstat.com/channel/@outrocanal ...
| e as colunas já ficam separadas automaticamente em Nome, Subscribers e Link.
Script extra — baixar apenas os dados acumulados na sessão atual
Se o script principal já rodou e você quer baixar tudo que foi capturado na sessão sem rodar novamente, execute este trecho separado no console:
(function baixarAcumulado() {
if (!window.acumulado || window.acumulado.trim() === '') {
console.log("Nenhum dado acumulado ainda.");
return;
}
const blob = new Blob([window.acumulado], {type: "text/plain"});
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = `todos_cards_acumulados_${Date.now()}.txt`;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
console.log("Arquivo TXT completo gerado com os cards acumulados!");
})();
Recursos relacionados
TGStat — Plataforma de análise de canais Telegram
Site oficial onde o script é executado. Acesse a listagem de canais pelo nicho que deseja analisar.
Acessar TGStat →MDN Web Docs — Blob API
Documentação oficial da API usada pelo script para criar e salvar os arquivos TXT diretamente no navegador.
Ver documentação →Mais scripts de automação no @CanalQb
O blog publica regularmente scripts JavaScript e Python para automação de tarefas repetitivas no navegador e em servidores.
Ver no blog →Quer mais scripts como este?
O @CanalQb publica scripts práticos de automação, extração de dados e ferramentas para economizar tempo em tarefas repetitivas. Se este script resolveu seu problema, se inscreva no canal para não perder os próximos.
Ver canal no YouTube Mais scripts no blogℹ️ Nota Técnica: Este script é fornecido para fins educacionais e de automação pessoal. O uso deve respeitar os Termos de Serviço do TGStat. O autor não se responsabiliza por mudanças na estrutura HTML do site que possam afetar o funcionamento do script. Sempre teste em ambiente controlado antes de usar em produção.
Publicado por @CanalQb — Tecnologia, scripts e automação na prática.

Comentários
Comente só assim vamos crescer juntos!