# 🚗 GUIA CTF_CARSTUFF - Scraping Knowledge Base **Cliente**: CTF_Carstuff **Objetivo**: Construir knowledge base sobre estofamento automotivo **Sites**: 18 sites + 2 subreddits Reddit **Output**: `/media/ealmeida/Dados/GDrive/Cloud/Clientes_360/CTF_Carstuff/KB/Scrapper/sites/` --- ## ⚡ EXECUÇÃO RÁPIDA ### **Opção 1: TODOS os sites (Recomendado para primeira execução)** ```bash cd /media/ealmeida/Dados/Dev/Scripts/scraper/ source .venv/bin/activate python batch_scraper.py --config ctf_config.json --all ``` **Tempo estimado**: 2-4 horas **Output**: 200-500 páginas em Markdown --- ## 🎯 EXECUÇÃO POR PRIORIDADE ### **Alta Prioridade (Sites principais - Executar primeiro)** Sites incluídos: - The Hog Ring (blog principal estofamento) - TheSamba Main + Forum (VW clássicos) - Portal dos Clássicos (fórum PT - mercado local) ```bash # Criar config temporário apenas com high priority python -c " import json with open('ctf_config.json') as f: config = json.load(f) high_priority = [s for s in config['sites'] if s.get('priority') == 'high'] config['sites'] = high_priority with open('ctf_high_priority.json', 'w') as f: json.dump(config, f, indent=2) " # Executar python batch_scraper.py --config ctf_high_priority.json --all ``` ### **Média Prioridade (Sites secundários)** Sites incluídos: - Sailrite, Albright Supply, Relicate - Pelican Parts Forum (Porsche) - MG Experience, Triumph, Alfa BB Forums - Camira Fabrics, Sunbrella ```bash # Filtrar apenas medium priority python batch_scraper.py --config ctf_config.json --types wordpress forum ecommerce ``` ### **Baixa Prioridade (Risco anti-bot - Executar por último)** Sites incluídos: - Cruisers Forum, Trawler Forum (marítimo) - Vans Air Force (aviação) - Keyston Bros, Ultrafabrics (possível anti-bot) ⚠️ **ATENÇÃO**: Estes sites podem falhar devido a proteções anti-bot. **Solução**: Executar em horário de baixo tráfego (02:00-06:00) --- ## 📊 ESTRUTURA DE OUTPUT ``` /media/ealmeida/Dados/GDrive/Cloud/Clientes_360/CTF_Carstuff/KB/Scrapper/sites/ ├── output_md/ # 📄 FASE 1: Markdown RAW (extração) │ ├── thehogring_com/ │ ├── sailrite_com/ │ ├── reddit_Autoupholstery/ │ └── ... │ ├── output_cleaned/ # 🧹 FASE 2: Markdown LIMPO (após clean_md.py) │ └── [mesma estrutura] │ ├── formatted/ # ✨ FASE 3: Formatado AI (após format_content.py) │ └── [mesma estrutura] │ └── logs/ # 📝 Logs e relatórios ├── batch_scraper_20251105_025256.log └── batch_report_20251105_025256.json ``` --- ## 🔄 PIPELINE COMPLETO (3 Fases) ### **FASE 1: Extração (Scraping)** ```bash python batch_scraper.py --config ctf_config.json --all ``` **Output**: `output_md/` - Markdown bruto com todo conteúdo ### **FASE 2: Limpeza** ```bash python clean_md.py \ /media/ealmeida/Dados/GDrive/Cloud/Clientes_360/CTF_Carstuff/KB/Scrapper/sites/output_md/ \ /media/ealmeida/Dados/GDrive/Cloud/Clientes_360/CTF_Carstuff/KB/Scrapper/sites/output_cleaned/ ``` **Output**: `output_cleaned/` - Remove HTML residual, normaliza formatação ### **FASE 3: Formatação AI (Opcional)** ⚠️ **Requer**: API key OpenRouter em `.env` ```bash # Editar format_content.py para apontar para diretório CTF # Linha ~50: INPUT_DIR = "/media/ealmeida/Dados/GDrive/Cloud/Clientes_360/CTF_Carstuff/KB/Scrapper/sites/output_cleaned/" # Linha ~51: OUTPUT_DIR = "/media/ealmeida/Dados/GDrive/Cloud/Clientes_360/CTF_Carstuff/KB/Scrapper/sites/formatted/" python format_content.py ``` **Output**: `formatted/` - Conteúdo profissionalmente formatado --- ## 🤖 REDDIT (Opcional) Para incluir Reddit (requer credenciais): ### **1. Criar credenciais Reddit** 1. Ir a: https://reddit.com/prefs/apps 2. Clicar "create app" 3. Tipo: "script" 4. Redirect URI: `http://localhost:8080` 5. Copiar `CLIENT_ID` e `CLIENT_SECRET` ### **2. Adicionar ao `.env`** ```bash REDDIT_CLIENT_ID=your-client-id REDDIT_CLIENT_SECRET=your-client-secret REDDIT_USER_AGENT=CTF_Scraper/1.0 by YourUsername ``` ### **3. Executar com Reddit** ```bash # Apenas Reddit python batch_scraper.py --config ctf_config.json --reddit-only # Sites + Reddit python batch_scraper.py --config ctf_config.json --all --include-reddit ``` **Subreddits configurados**: - r/Autoupholstery - r/upholstery **Limite**: 50 posts/subreddit, ordenados por top (último ano) --- ## 📋 SITES CONFIGURADOS ### **🇵🇹 Sites Português (Prioridade Alta)** - **Portal dos Clássicos** - `https://forum.portaldosclassicos.com` Fórum PT sobre automóveis clássicos (mercado local) ### **🌐 Sites Principais (Prioridade Alta)** - **The Hog Ring** - `https://www.thehogring.com/` Blog principal sobre estofamento automotivo - **TheSamba Main** - `https://thesamba.com` Recurso sobre VW clássicos - **TheSamba VW Forum** - `https://thesamba.com/vw/forum/` Fórum VW - comunidade ativa ### **🛒 E-commerce (Prioridade Média)** - Sailrite, Albright Supply, Relicate - Camira Fabrics, Sunbrella (fornecedores tecidos) ### **💬 Fóruns Marca (Prioridade Média)** - Pelican Parts (Porsche) - MG Experience, Triumph, Alfa BB ### **⚓ Marítimo/Aviação (Prioridade Baixa)** - Cruisers Forum, Trawler Forum (barcos) - Vans Air Force (aviação) ### **⚠️ Anti-bot Risk (Prioridade Baixa)** - Keyston Bros, Ultrafabrics (e-commerce com proteção) --- ## ⏱️ ESTIMATIVAS DE TEMPO | Categoria | Sites | Páginas Estimadas | Tempo | |-----------|-------|-------------------|-------| | **Alta prioridade** | 4 sites | 100-200 páginas | 45-90min | | **Média prioridade** | 9 sites | 150-250 páginas | 1.5-2.5h | | **Baixa prioridade** | 5 sites | 50-100 páginas | 1-2h | | **Reddit** | 2 subreddits | 100 posts | 2-5min | | **TOTAL** | 18 + Reddit | 400-650 itens | 3-5h | --- ## 🔍 MONITORIZAÇÃO ### **Ver progresso em tempo real**: ```bash tail -f /media/ealmeida/Dados/GDrive/Cloud/Clientes_360/CTF_Carstuff/KB/Scrapper/sites/logs/batch_scraper_*.log ``` ### **Ver relatório final**: ```bash cat /media/ealmeida/Dados/GDrive/Cloud/Clientes_360/CTF_Carstuff/KB/Scrapper/sites/logs/batch_report_*.json ``` Relatório inclui: - Total sites processados - Sites com sucesso vs falhados - Número de páginas por site - Erros detalhados - Tempo total de execução --- ## ⚠️ SITES COM POSSÍVEIS PROBLEMAS ### **Anti-bot Forte**: - ❌ **keystonbros.com** - E-commerce com proteção Cloudflare - ❌ **ultrafabricsinc.com** - E-commerce com verificação JS **Solução**: Executar em horário baixo tráfego (madrugada) ### **Muito Lento/Grande**: - ⚠️ **cruisersforum.com** - Milhares de threads - ⚠️ **trawlerforum.com** - Milhares de threads **Solução**: Já configurado `max_depth=1` para limitar ### **Requer Validação URL**: - ⚠️ Sites alemães (Autosattler.de, Lederzentrum) - ⚠️ Sites espanhóis (Piel de Toro) **Status**: Incluídos na config mas podem necessitar ajustes --- ## 🛠️ TROUBLESHOOTING ### **Erro: "Timeout"** ```bash # Editar ctf_config.json, aumentar timeout: "scraper_settings": { "request_timeout": 120 # Aumentar de 60 para 120 } ``` ### **Erro: "403 Forbidden"** ```bash # Aumentar delays em ctf_config.json: "scraper_settings": { "politeness_delay": [5, 10] # Aumentar de [2,5] para [5,10] } ``` ### **Site específico falhando** ```bash # Remover temporariamente do ctf_config.json # Executar restantes sites # Tentar site problemático individualmente depois ``` --- ## 🎯 RECOMENDAÇÕES ### **Primeira Execução**: 1. ✅ Executar **apenas alta prioridade** primeiro 2. ✅ Validar output em `output_md/` 3. ✅ Se OK, executar **média prioridade** 4. ✅ Por último, **baixa prioridade** (madrugada) ### **Execução Programada**: ```bash # Executar automaticamente todas as noites às 02:00 echo "0 2 * * * cd /media/ealmeida/Dados/Dev/Scripts/scraper && .venv/bin/python batch_scraper.py --config ctf_config.json --all" | crontab - ``` ### **Backup**: ```bash # Backup periódico do knowledge base tar -czf kb_backup_$(date +%Y%m%d).tar.gz \ /media/ealmeida/Dados/GDrive/Cloud/Clientes_360/CTF_Carstuff/KB/Scrapper/sites/output_md/ ``` --- ## 📞 SUPORTE - **Documentação geral**: `README.md` - **Guia rápido**: `QUICKSTART.md` - **Validação setup**: `python validate_setup.py` - **Implementações**: `IMPLEMENTADO.md` --- ## 📈 PRÓXIMOS PASSOS 1. **Executar primeira extração**: ```bash python batch_scraper.py --config ctf_config.json --all ``` 2. **Validar resultados**: ```bash ls -lh /media/ealmeida/Dados/GDrive/Cloud/Clientes_360/CTF_Carstuff/KB/Scrapper/sites/output_md/ ``` 3. **Limpar conteúdo** (Fase 2): ```bash python clean_md.py [input] [output] ``` 4. **Opcional: Formatar com AI** (Fase 3): ```bash python format_content.py # Após configurar paths ``` --- **Status**: ✅ PRONTO PARA USO **Última atualização**: 2025-11-05 **Author**: Descomplicar® Crescimento Digital **Link**: https://descomplicar.pt