Skip to content

bruno-dicastro/doc-downloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Document Downloader Inteligente

Script Python automatizado para extrair e baixar documentos (PDF, DOC, XLS, etc.) de páginas web, com foco em preservar nomes amigáveis e lidar com carregamento dinâmico.

🚀 Funcionalidades

  • Nomes Amigáveis: Extrai o contexto do link ou do elemento pai para nomear o arquivo de forma humana.
  • Detecção de MIME Type: Garante a extensão correta inspecionando o cabeçalho Content-Type.
  • Híbrido (Requests + Playwright): Prioriza downloads diretos em paralelo para velocidade e usa simulação de clique para casos complexos.
  • Evasão Anti-Bot: Implementação de playwright-stealth e comportamento humano para minimizar bloqueios.
  • Otimização: Agrupa links por URL e gerencia limites de download.

🛠️ Instalação e Uso Rápido

Para facilitar a execução, utilize os scripts de automação que configuram o ambiente e instalam as dependências automaticamente:

💻 No Linux/Mac:

chmod +x run.sh
./run.sh "https://site-alvo.com" --limit 5

🪟 No Windows:

run.bat "https://site-alvo.com" --limit 5

📖 Guia de Uso Manual

Pré-requisitos

  1. Python 3.10+:

    • Linux/Mac: Geralmente já instalado (python3 --version).
    • Windows:
      • Baixe em python.org.
      • IMPORTANTE: Durante a instalação, marque a caixa "Add Python to PATH".
      • Verifique abrindo o Prompt de Comando e digitando python --version.
  2. Configuração (Automática via scripts):

    • O run.sh ou run.bat cuidará do resto (ambiente virtual e dependências).

Comando

python downloader.py "https://site-alvo.com" [argumentos]

Argumentos:

  • url: A URL da página que contém os links para os documentos.
  • --out ou -o: Pasta onde os arquivos serão salvos (padrão: downloads).
  • --limit ou -l: Limite máximo de arquivos para baixar (ignora arquivos já existentes).
  • --keywords ou -k: Palavras-chave adicionais para busca (ex: "planilha,anexo,vencimentos").

🧪 Testes e Validação

Para detalhes sobre os sites testados, desafios técnicos superados e restrições conhecidas, consulte o arquivo TESTS.md.

📝 Licença

Este projeto é de uso livre para fins educacionais e profissionais.

About

Script Python para extração automatizada de documentos (PDF, DOC, XLS) em sites complexos. Utiliza Playwright para vencer carregamentos dinâmicos e proteções anti-bot, garantindo nomes amigáveis baseados no contexto da página.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages