amazon-scraper/
├── tests/ # 📁 PASTA DEDICADA DE TESTES
│ ├── __init__.py # Configuração do pacote
│ ├── conftest.py # Fixtures do PyTest
│ ├── test_models.py # Testes dos modelos
│ ├── test_extractors.py # Testes dos extratores
│ ├── test_utils.py # Testes dos utilitários
│ ├── test_scraper.py # Testes do scraper
│ ├── test_config.py # Testes das configurações
│ └── test_integration.py # Testes de integração
├── main.py # Ponto de entrada principal
├── cli.py # Interface de linha de comando
├── scraper.py # Classe principal do scraper
├── models.py # Classes de dados (ProductInfo, Review, etc.)
├── extractors.py # Extratores de dados das páginas
├── utils.py # Utilitários e gerenciamento de arquivos
├── config.py # Configurações centralizadas
├── requirements.txt # Dependências
├── README.md # Documentação
└── amazon_data/ # Diretório de dados (criado automaticamente)
├── *.json # Arquivos de dados
└── *.csv # Arquivos CSV
Review: Classe para informações de reviewsProductInfo: Classe para informações de produtosScrapingResult: Resultado completo do scraping
ProductExtractor: Extrai informações de produtos das páginas de buscaReviewExtractor: Extrai reviews das páginas de produtos
AmazonScraper: Classe principal que orquestra todo o processo- Gerencia sessões HTTP, delays, e coordena os extratores
FileManager: Gerencia salvamento de arquivos JSON/CSVLogger: Configuração de loggingStatsCalculator: Calcula estatísticas dos resultados
CLI: Interface de linha de comando interativa- Menus, validação de entrada, exibição de resultados
Config: Configurações estáticas (URLs, seletores CSS, etc.)UserConfig: Configurações personalizáveis
pip install -r requirements.txtpython main.py