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
- Acede a: https://my.telegram.org/auth
- Faz login com o teu número
- Vai a “API development tools”
- Cria a aplicação e guarda o
api_id
eapi_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áticoCSV
: 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.