Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Atualiza spider de rj-campos para usar start_date #1323

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

slfabio
Copy link
Collaborator

@slfabio slfabio commented Nov 13, 2024

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:

  • O layout não se parece com nenhum caso da lista de layouts padrão
  • É um layout padrão e esta PR adiciona a spider base do padrão ao projeto junto com alguns municípios que fazem parte do padrão.
  • É um layout padrão e todos os municípios adicionados usam a classe de spider base adequada para o padrão.

Código da(s) spider(s)

Foi adotado o start_date 01/11/2013, conforme decisão em #637 (comment), pois de out/2012 a out/2013 os diários estão armazenados compactados em extensão .rar

  • Explicitar o atributo de classe end_date não se fez necessário.
  • Não utilizo custom_settings em meu raspador.

Testes

  • Uma coleta-teste da última edição foi feita. O arquivo de .log deste teste está anexado na PR.
  • Uma coleta-teste por intervalo arbitrário foi feita. Os arquivos de .loge .csv deste teste estão anexados na PR.
  • Uma coleta-teste completa foi feita. Os arquivos de .log e .csv deste teste estão anexados na PR.
    completa.csv
    completa.log
    intervalo.csv
    intervalo.log
    ultima.csv
    ultima.log

Verificações

  • Eu experimentei abrir alguns arquivos de diários oficiais coletados pelo meu raspador e verifiquei eles conforme a documentação não encontrando problemas.
  • Eu verifiquei os arquivos .csv gerados pela minha coleta conforme a documentação não encontrando problemas.
  • Eu verifiquei os arquivos de .log gerados pela minha coleta conforme a documentação não encontrando problemas.

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
Copy link
Collaborator Author

slfabio commented Nov 18, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: novo
Development

Successfully merging this pull request may close these issues.

[Revisão retroativa] Campos dos Goytacazes-RJ
1 participant