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.11k stars 411 forks source link

Atualiza spider de rj-campos para usar start_date #1323

Open slfabio opened 1 week ago

slfabio commented 1 week ago

AO ABRIR uma Pull Request de um novo raspador (spider), marque com um X cada um dos items da checklist abaixo. Caso algum item não seja marcado, JUSTIFIQUE o motivo.

Layout do site publicador de diários oficiais

Marque apenas um dos itens a seguir:

Código da(s) spider(s)

Foi adotado o start_date 01/11/2013, conforme decisão em https://github.com/okfn-brasil/querido-diario/issues/637#issuecomment-2447946814, pois de out/2012 a out/2013 os diários estão armazenados compactados em extensão .rar

Testes

Verificações

Descrição

resolve #637 Adiciona atributo start_date e edition_number ao spider de Campos RJ.

Alguns diários oficiais possuem erros de digitação, no código anterior já havia um replace para tratar alguns casos, corrigindo algumas ocorrências para as grafias incorretas: "Agosoto" e "Dezembrbo". No entanto, ao rodar os testes foi identificado mais um erro de digitação na edição "Suplemento do Diário Oficial Eletrônico de 04 de Abril0 de 2024 - Edição - 1547".

Ao invés de adicionar mais um replace e visando uma solução que funcione para futuros erros de digitação, utilizei a biblioteca fuzzywuzzy, que usa o algoritmo de distância Levenshtein para medir a semelhança entre duas strings e, a partir da lista de meses, selecionar o mês com a grafia correta antes de fazer o dateparser.

Para usar o fuzzywuzzy, é necessário instalar 2 bibliotecas ao projeto: pip install fuzzywuzzy pip install python-Levenshtein

Caso a solução seja aceita, poderíamos mover o método extract_date para o utils do projeto para poder ser usado por outros spiders de diários que possuem a data do diário com o mês passado por extenso.

slfabio commented 6 days ago

Oi @trevineju, estou atualizando o código do PR #563 para incluir os atributos obrigatórios do spider e identifiquei a mesma situação de meses com grafia incorreta gerando erro no dateparser.

Antes de enviar o código para Barra Mansa, queria ver o que você acha dessa solução para correção de erros de digitação no mês para reaproveitar o método extract_date no utils do projeto.