feat(bizin): scraper final com bypass Cloudflare + monitor de auto-reinício

- bizin_scraper_final.py: scraper híbrido curl_cffi + undetected-chromedriver
  com suporte a distritos e categorias, escrita segura (fsync) e enriquecimento externo
- monitor_scraper.sh: watchdog que reinicia o processo automaticamente em crash
- IMPLEMENTADO.md + README.md: actualizados para reflectir estado Abril 2026
- GEMINI.md: instruções técnicas de automação
- test_curl.py, test_curl_clean.py, test_playwright.py: scripts de teste/diagnóstico

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-28 17:16:48 +01:00
parent 865a9459a6
commit 8e0dbbeca0
8 changed files with 337 additions and 220 deletions
+23
View File
@@ -0,0 +1,23 @@
# 🤖 Instruções para o Gemini CLI
Este ficheiro serve como guia de continuidade para sessões futuras.
## 🎯 Contexto Atual: Scraper Bizin
O ficheiro principal é o `bizin_scraper_final.py`. Ele foi desenhado para ser resiliente e híbrido.
## 🚀 Como Continuar (Modo Autónomo)
Quando o utilizador reiniciar com `--allow all`, segue estes passos:
1. **Execução:** Corre o scraper usando `./venv/bin/python bizin_scraper_final.py`.
2. **Monitorização:**
- Observa o ficheiro `logs/bizin_final.log` em tempo real.
- Verifica o crescimento do CSV em `output/bizin_empresas_final.csv`.
3. **Gestão de Bloqueios:**
- O script já tem lógica de fallback para `undetected-chromedriver` (UC).
- **Nota Crítica:** Se o UC falhar por erro de versão de Chrome (v147 vs v148), tenta atualizar o driver ou sugerir a correção do binário do Chrome se tiveres permissão.
4. **Relatório:** Ao terminar (ou se houver erro fatal), gera um breve resumo de quantas empresas foram extraídas.
## 🛠️ Comandos Frequentes
- Executar: `./venv/bin/python bizin_scraper_final.py`
- Ver Progresso: `tail -f logs/bizin_final.log`
- Contar Resultados: `wc -l output/bizin_empresas_final.csv`