Skip to content

Diagnostico do Crawler

Samuel Souza edited this page Jul 9, 2026 · 2 revisions

Diagnostico do Crawler

Use esta pagina para investigar uma rodada do crawler sem depender de um snapshot antigo do banco local.

Onde olhar primeiro

  1. Abra a execucao em Actions > Atualizar pacote de dados.
  2. Confira se as etapas Restaurar pacote atual, Executar scraper, Compactar banco para GitHub, Publicar banco na release fixa e Validar salvamento da rodada foram concluidas.
  3. Baixe ou abra o ultimo relatorio em data/relatorios/.
  4. Confira a secao Salvamento e backups do workflow adicionada pelo workflow.

Restauracao

A restauracao pode vir de duas origens:

Origem Conteudo restaurado Uso
OneDrive pacote completo com raws, cache, relatorios e SQLite Estado completo para continuar a coleta
GitHub Release cotacoes.sqlite.xz Fallback enxuto com banco pronto para consumo

Se nenhum dado anterior for restaurado, o workflow falha antes de executar o scraper. Isso evita publicar uma base incompleta criada do zero por acidente.

Sinais principais no relatorio

Verifique:

  • fontes concluidas, com falha e ignoradas;
  • falhas de download, parser e persistencia separadamente;
  • raws com cotacao e raws sem cotacao;
  • cotacoes rejeitadas por falta de data, falta de preco ou preco negativo;
  • tempo de download, processamento e persistencia;
  • origem restaurada e artefatos salvos fora do runner.

Quando uma rodada merece atencao

Investigue com prioridade quando ocorrer:

  • nenhuma publicacao em latest-data;
  • nenhum backup salvo fora do runner;
  • perda recorrente de uma fonte importante;
  • crescimento inesperado do SQLite;
  • aumento grande de cotacoes rejeitadas;
  • queda relevante no total de cotacoes novas;
  • falha em Validar salvamento da rodada.

Problemas conhecidos

  • Downloads repetidos do mesmo historico podem gerar duplicacoes no SQLite enquanto a chave unica ainda depender da coleta fisica.
  • CEASA-Campinas e CEASA-RJ podem apresentar timeouts.
  • CEASA-BA e CEAGESP-SP possuem historico limitado no fluxo atual.
  • PDFs da CEASA-PR podem chegar ausentes ou malformados; o fallback com pdftotext reduz perda, mas nao corrige PDF inexistente.

Comandos locais uteis

Reprocessar raws ativos sem baixar novamente:

docker compose run --rm salvar

Forcar reprocessamento completo dos raws ativos:

docker compose run --rm app --process-raw --force-reprocess

Inspecionar o banco publicado:

docker compose run --rm --entrypoint python app scripts/cotacoes.py descompactar-banco --arquivo cotacoes.sqlite.xz

Historico antigo

Snapshots antigos de diagnostico devem ser tratados como evidencia historica, nao como estado atual do crawler. Para decisoes operacionais, use sempre o ultimo workflow, o ultimo relatorio e os artefatos atuais da release ou do OneDrive.

Clone this wiki locally