🛰️ Telegram Channel Scraper: Ferramenta Poderosa para Extrair Dados de Canais Telegram com Python

Se procuras uma forma eficiente de extrair mensagens e ficheiros multimédia de canais do Telegram, o Telegram Channel Scraper é a solução ideal. Criado com a biblioteca Telethon, este script em Python permite-te guardar dados de forma organizada, com suporte para scraping contínuo, exportação de dados e muito mais.

🔗 GitHub: https://github.com/unnohwn/telegram-scraper


✨ Principais Funcionalidades

  • 📩 Extração de mensagens de múltiplos canais
  • 🖼️ Download de multimédia (fotos, documentos, etc.)
  • 🔄 Scraping contínuo em tempo real
  • 💾 Exportação para formatos CSV e JSON
  • 🗃️ Armazenamento em base de dados SQLite
  • ⏯️ Capacidade de retomar scraping após interrupção
  • 🔁 Reprocessamento automático de media falhada
  • 🧭 Interface interativa via terminal

📋 Pré-Requisitos

Antes de correr o script, precisas de:

  • Python 3.7 ou superior
  • Conta Telegram
  • Credenciais API do Telegram

Instala os pacotes com:

pip install -r requirements.txt

Requisitos (requirements.txt):

telethon
aiohttp
asyncio

🔑 Como Obter Credenciais da API Telegram

  1. Acede a: https://my.telegram.org/auth
  2. Faz login com o teu número
  3. Vai a “API development tools”
  4. Cria a aplicação e guarda o api_id e api_hash

⚙️ Instalação e Execução

git clone https://github.com/unnohwn/telegram-scraper.git
cd telegram-scraper
pip install -r requirements.txt
python telegram-scraper.py

Durante o primeiro uso, introduz:

  • api_id
  • api_hash
  • Teu número de telefone com indicativo
  • Código de verificação (enviado via Telegram)

🕒 Comportamento Inicial

Ao iniciar o scraping de um canal:

  • O script tenta obter todo o histórico de mensagens
  • Pode demorar dependendo do canal, tamanho dos media, e conexão
  • Armazena o progresso, permitindo retomar se for interrompido
  • Mostra progresso em tempo real

🧭 Menu Interativo

[A] Adicionar novo canal
[R] Remover canal
[S] Scraping único de todos os canais
[M] Ativar/desativar download de media
[C] Scraping contínuo
[E] Exportar dados
[V] Ver canais guardados
[L] Listar canais da conta
[Q] Sair

💾 Estrutura dos Dados

Base de dados SQLite por canal:
./nomedocanal/nomedocanal.db

Tabela: messages

  • message_id, data, sender_id, username, mensagem, media_type, media_path, etc.

Ficheiros media:
./nomedocanal/media/

Exportações disponíveis:

  • JSON: estruturado para processamento automático
  • CSV: legível e compatível com Excel/Sheets

🔁 Scraping Contínuo

  • Monitoriza os canais em tempo real
  • Deteta novas mensagens automaticamente
  • Faz download imediato de media
  • Pode correr indefinidamente até ser interrompido (Ctrl+C)
  • Mantém estado entre execuções

🛠️ Robustez e Limitações

  • Suporta tentativas automáticas em caso de falha de download
  • Lida com limites de flood imposto pelo Telegram
  • Apenas acessível a canais públicos ou dos quais sejas membro
  • Respeita as regras de uso do Telegram

⚠️ Disclaimer Legal

Esta ferramenta é apenas para fins educacionais.
Usa-a com responsabilidade, respeita os Termos de Serviço do Telegram e regras de proteção de dados.


🤝 Queres contribuir?

Pull Requests são bem-vindos! Consulta o repositório no GitHub e contribui com código, feedback ou sugestões.

Artigos Relacionados