Files
scripts/scraper/CTF_CARSTUFF_GUIDE.md

8.9 KiB
Executable File

🚗 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)

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)
# 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
# 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)

python batch_scraper.py --config ctf_config.json --all

Output: output_md/ - Markdown bruto com todo conteúdo

FASE 2: Limpeza

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

# 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

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

# 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:

tail -f /media/ealmeida/Dados/GDrive/Cloud/Clientes_360/CTF_Carstuff/KB/Scrapper/sites/logs/batch_scraper_*.log

Ver relatório final:

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"

# Editar ctf_config.json, aumentar timeout:
"scraper_settings": {
  "request_timeout": 120  # Aumentar de 60 para 120
}

Erro: "403 Forbidden"

# Aumentar delays em ctf_config.json:
"scraper_settings": {
  "politeness_delay": [5, 10]  # Aumentar de [2,5] para [5,10]
}

Site específico falhando

# 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:

# 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:

# 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:

    python batch_scraper.py --config ctf_config.json --all
    
  2. Validar resultados:

    ls -lh /media/ealmeida/Dados/GDrive/Cloud/Clientes_360/CTF_Carstuff/KB/Scrapper/sites/output_md/
    
  3. Limpar conteúdo (Fase 2):

    python clean_md.py [input] [output]
    
  4. Opcional: Formatar com AI (Fase 3):

    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