okfn-brasil / querido-diario

📰 Diários oficiais brasileiros acessíveis a todos | 📰 Brazilian government gazettes, accessible to everyone.
https://queridodiario.ok.org.br/
MIT License
1.12k stars 411 forks source link

[Discussão] Pensar outras dinâmicas de raspagens no Querido Diário #1056

Open trevineju opened 11 months ago

trevineju commented 11 months ago

Atualmente, o Querido Diário tem 2 modalidades de raspagem no scheduler.py:

Estas opções parecem não estar mais dando conta das necessidades do projeto. A frequência mensal foi criada para "confirmar" (e dar redundância) à diária, pois nem sempre a diária era suficiente, uma vez que várias cidades não publicam imediatamente (o diário do dia X, nem sempre saí no dia X ou dia X+1).

Está aumentando o número de casos em que a mensal parece também não dar conta. Exemplos: Bacabal-MA já gerou debates em issues (#826 e pedido de acesso a informação https://github.com/okfn-brasil/querido-diario-comunidade/issues/60), por trazer o problema que o atraso na publicação era de mais de um mês. Estamos com outros 3 casos de cidades que demoram muito para publicar e estão gerando erros há semanas: Boa Vista do Gurupi (MA), Zé Doca (MA) e Centro do Guilherme (MA). As últimas edições dessas cidades são da última semana de outubro.

image

Além do problema de ficarmos recebendo mensagens de erro que não são de fato erros já que não há diário para coletar, também gera a preocupação da raspagem mensal não coletar tudo defasado. Pois, se ela tenta novamente os exatos últimos 31 dias, caso o atraso for maior que isso, a cobertura do QD pode ficar deficitária em certo intervalo. Por exemplo, se uma raspagem mensal fosse executada hoje, coletaria de 8/novembro a 8/dezembro. Para todos os casos mostrados no print acima, estariam faltando os diários de 25 ou 30/novembro até 8/novembro.

Acredito que aqui não seja apenas questão de pensar em outras frequências (anual, semanal, bimestral,...) para termos boas coletas principais (=diminuir número de "falsos positivos") e coletas de redundâncias (=confirmar a coleta principal posteriormente), mas também de personalização. Hoje em dia, as coletas diárias e mensais são engatilhadas pra toda lista de raspadores. Hipoteticamente, caso adotemos semanal como uma nova frequência (e há muitos casos em que a própria prefeitura chama seu documento oficial de "semanário oficial" - exemplo - ao invés de "diário oficial"), uma mesma cidade não precisaria estar na lista de raspagem diária e semanal ao mesmo tempo.

Temos uma PR aberta (#900) que migra para o banco a responsabilidade de controlar o que está em produção (implicando que a lista de raspadores habilitados deixaria de existir). Com isso, a viabilização de associar um raspador à sua "configuração de raspagem" pode ser uma melhoria implementada no banco. Porém ainda fica em aberto quais são boas "configurações" de se ter, frequências, redundâncias, quais critérios definiriam a escolha por cada um, possibilidade das prefeituras de migrarem...

Seria muito legal receber opiniões aqui

ogecece commented 11 months ago

Penso que um passo seria termos um comando que passaria a consultar a data do último documento raspado no banco e considerar o start_date da raspagem a partir dali, e não um período fixo como o último mês ou a última semana. Assim evitaríamos problemas com publicadores subindo documentos atrasados no tempo.

(inclusive, poderia até ser o modo padrão de consulta dos diários em produção)

Mesmo assim, ainda continuaríamos tendo erros no monitoramento diariamente para esses raspadores mencionados alguns dias depois de novos arquivos fossem subidos. Para isso acho que vale alguns raspadores terem uma frequência de raspagem diferente mesmo (semanal deve ser suficiente).

rennerocha commented 11 months ago

@ogecece

Sua ideia de data de início dinâmica é muito boa. Talvez possamos fazer de duas maneiras:

Agora que o ano está chegando no fim, poderíamos fazer um anual também. Assim pegaríamos tudo do ano de 2023 caso alguma coisa tenha falhado no meio do caminho.