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.06k stars 388 forks source link

Raspadores de DOEM - Grupo 1 - BA #964

Closed natanluiz99 closed 10 months ago

natanluiz99 commented 10 months ago

AO ABRIR um Pull Request de um novo raspador (spider), marque com um X cada um dos items do checklist abaixo. NÃO ABRA um novo Pull Request antes de completar todos os items abaixo.

Checklist - Novo spider

Descrição

947

Arquivos com Logs da checagem geral (scrapy crawl ba_antonio_cardoso -s LOG_FILE=ba_antonio_cardoso.txt -o ba_antonio_cardoso.csv) ba_antonio_cardoso.csv ba_antonio_cardoso.txt

Arquivos com Logs da checagem aleatória com start_date e end_date (2019-09-01 a 2019-11-01) ba_antonio_cardoso_2019(09-11).txt ba_antonio_cardoso2019.csv

Em ambos os Logs não foram encontrados erros sequer, além dos dados extraídos estarem de acordo com o escopo esperado.

Spider modificado com atributo de classe para o primeiro dia de publicação dos diários (2018-01-03)

natanluiz99 commented 10 months ago

AO ABRIR um Pull Request de um novo raspador (spider), marque com um X cada um dos items do checklist abaixo. NÃO ABRA um novo Pull Request antes de completar todos os items abaixo.

Checklist - Novo spider Você executou uma extração completa do spider localmente e os dados retornados estavam corretos. Você executou uma extração por período (start_date e end_date definidos) ao menos uma vez e os dados retornados estavam corretos. Você verificou que não existe nenhum erro nos logs (log_count/ERROR igual a zero). Você definiu o atributo de classe start_date no seu spider com a data do Diário Oficial mais antigo disponível na página da cidade. Você garantiu que todos os campos que poderiam ser extraídos foram extraídos de acordo com a documentação. Descrição

947

Arquivos com Logs da checagem geral (scrapy crawl ba_alcobaca -s LOG_FILE=ba_alcobaca.txt -o ba_alcobaca.csv) ba_alcobaca.csv ba_alcobaca.txt

Arquivos com Logs da checagem aleatória com start_date e end_date (2022-06-01 a 2022-08-01) ba_alcobaca2022.csv ba_alcobaca_2022(06-08).txt

Em ambos os Logs não foram encontrados erros sequer, além dos dados extraídos estarem de acordo com o escopo esperado.

Spider modificado com atributo de classe para o primeiro dia de publicação dos diários (2018-01-02)

natanluiz99 commented 10 months ago

AO ABRIR um Pull Request de um novo raspador (spider), marque com um X cada um dos items do checklist abaixo. NÃO ABRA um novo Pull Request antes de completar todos os items abaixo.

Checklist - Novo spider

Descrição

947

Arquivos com Logs da checagem geral (scrapy crawl ba_banzae -s LOG_FILE=ba_banzae.txt -o ba_banzae.csv) ba_banzae.txt ba_banzae.csv

Arquivos com Logs da checagem aleatória com start_date e end_date (2018-04-01 a 2018-06-01) ba_banzae_2018(04-06).txt ba_banzae2018.csv

Em ambos os Logs não foram encontrados erros sequer, além dos dados extraídos estarem de acordo com o escopo esperado.

Spider modificado com atributo de classe para o primeiro dia de publicação dos diários (2017-02-02)

natanluiz99 commented 10 months ago

AO ABRIR um Pull Request de um novo raspador (spider), marque com um X cada um dos items do checklist abaixo. NÃO ABRA um novo Pull Request antes de completar todos os items abaixo.

Checklist - Novo spider

Descrição

947

Arquivos com Logs da checagem geral (scrapy crawl ba_barra_do_choca -s LOG_FILE=ba_barra_do_choca.txt -o ba_barra_do_choca.csv)

ba_barra_do_choca.txt ba_barra_do_choca.csv

Arquivos com Logs da checagem aleatória com start_date e end_date (2020-07-01 a 2020-09-01) ba_barra_do_choca_2020(07-09).txt ba_barra_do_choca2020.csv

Em ambos os Logs não foram encontrados erros sequer, além dos dados extraídos estarem de acordo com o escopo esperado.

Spider modificado com atributo de classe para o primeiro dia de publicação dos diários (2018-01-02)

natanluiz99 commented 10 months ago

encontrei uma inconsistência na extração do ba_barrocas, estou checando a extração dos dados utilizando o site do doem para comparar com os dados extraídos, dessa forma percebi a diferença entre edições por exemplo no mesmo dia do link extraído do doem e o outro do raspador e verifiquei mais afundo para tentar descobrir de onde estaria vindo esse outro diario que o raspador está pegando DOEM Site da cidade image DOEM extraído do raspador image

trevineju commented 10 months ago

encontrei uma inconsistência na extração do ba_barrocas

Não consegui achar esses dois casos. Só um: https://doem.org.br/ba/barrocas/diarios/2018/1 Mas de qualquer forma, me parece uma inconsistência interna ao arquivo (ou seja, a pessoa que foi formatar o PDF editou errado). Como os raspadores raspam o site, não teria problema.

trevineju commented 10 months ago

Os mesmos ajustes comentados aqui servem também pra PR #963 (adicionar o import, corrigir a data inicial e mudar o nome do arquivo)

natanluiz99 commented 10 months ago

Ajustes:

  • [ ] A biblioteca date está sendo usada em todos os raspadores (linha 8, sempre), porém não está sendo importada. É necessário adicionar from datetime import date em todos os arquivos
  • [ ] Adicionar _2017 no nome do arquivo e no atributo de classe name (linha 6) para Antonio Cardoso, Barra do Choça e Barrocas
  • Sei que nem enviou Barrocas ainda, mas já olhei o site também.

Motivo: Estamos adotando que quando um site migra, adicionamos o ano inicial. Exemplo: PE_Recife. Note que tem dois, pq um raspador raspa certo site (a partir de 2015) e passa a raspar outro (a partir de 2022). É o mesmo caso aqui, já sabemos que o site mudou já que nesses 3 casos, não tem diários de hoje (outubro/2023)

Irei fazer as devidas modificações e vou experimentar nas próximas vezes explorar pela URL também.

Não consegui achar esses dois casos. Só um: https://doem.org.br/ba/barrocas/diarios/2018/1 Mas de qualquer forma, me parece uma inconsistência interna ao arquivo (ou seja, a pessoa que foi formatar o PDF editou errado). Como os raspadores raspam o site, não teria problema.

vou colocar o link de ambos, mas como nesse caso o problema é a formatação deles, vou focar em outra situação.

(edit: aparentemente agora está batendo com o pdf extraído pelo raspador, porém quando foi tirado esse print, não estava)

natanluiz99 commented 10 months ago

AO ABRIR um Pull Request de um novo raspador (spider), marque com um X cada um dos items do checklist abaixo. NÃO ABRA um novo Pull Request antes de completar todos os items abaixo.

Checklist - Novo spider

Descrição

947

Arquivos com Logs da checagem geral (scrapy crawl ba_barrocas -s LOG_FILE=ba_barrocas.txt -o ba_barroca.csv)

ba_barrocas.csv ba_barrocas.txt

Arquivos com Logs da checagem aleatória com start_date e end_date (2021-01-01 a 2021-03-01) ba_barrocas2021(01-03).txt ba_barrocas2021.csv

Em ambos os Logs não foram encontrados erros sequer, além dos dados extraídos estarem de acordo com o escopo esperado.

Spider modificado com atributo de classe para o primeiro dia de publicação dos diários (2017-01-02)

natanluiz99 commented 10 months ago

Ajustes:

  • [x] A biblioteca date está sendo usada em todos os raspadores (linha 8, sempre), porém não está sendo importada. É necessário adicionar from datetime import date em todos os arquivos
  • [x] Adicionar _2017 no nome do arquivo e no atributo de classe name (linha 6) para Antonio Cardoso, Barra do Choça e Barrocas
  • Sei que nem enviou Barrocas ainda, mas já olhei o site também.

Motivo: Estamos adotando que quando um site migra, adicionamos o ano inicial. Exemplo: PE_Recife. Note que tem dois, pq um raspador raspa certo site (a partir de 2015) e passa a raspar outro (a partir de 2022). É o mesmo caso aqui, já sabemos que o site mudou já que nesses 3 casos, não tem diários de hoje (outubro/2023)

alterações feitas nesses 3 spiders, atributo de classe name, nome do arquivo .py será necessário fazer isso para Alcobaça e Banzaé ?

trevineju commented 10 months ago

alterações feitas nesses 3 spiders, atributo de classe name, nome do arquivo .py será necessário fazer isso para Alcobaça e Banzaé ?

Boa! Obrigada! Banzaé não precisa. Nós só usamos esse artifício de colocar uf_municipio_ano para diferenciar dois arquivos. No caso de Banzaé não teremos um segundo arquivo (até o momento, pelo menos), pq o município segue usando o DOEM como sistema (é o local de publicação de diários vigente). Mas Alcobaça sim.

Porém, Alcobaça está nessa PR e em outra PR (a #963). Vc poderia escolher deixar ou lá ou aqui. Precisa da modificação de qualquer maneira, mas pode ser feita em apenas um lugar.

natanluiz99 commented 10 months ago

alterações feitas nesses 3 spiders, atributo de classe name, nome do arquivo .py será necessário fazer isso para Alcobaça e Banzaé ?

Boa! Obrigada! Banzaé não precisa. Nós só usamos esse artifício de colocar uf_municipio_ano para diferenciar dois arquivos. No caso de Banzaé não teremos um segundo arquivo (até o momento, pelo menos), pq o município segue usando o DOEM como sistema (é o local de publicação de diários vigente). Mas Alcobaça sim.

Porém, Alcobaça está nessa PR e em outra PR (a #963). Vc poderia escolher deixar ou lá ou aqui. Precisa da modificação de qualquer maneira, mas pode ser feita em apenas um lugar.

Fiz as devidas alterações agora na Alcobaça BA, preferi continuar nessa PR as alterações de todas as cidades

trevineju commented 10 months ago

Boa, @natanluiz99!

Fiz algumas modificações:

  1. Juntei todos aqueles seus commits em um só, mais para a história de modificações do repositório ficarem organizadas: https://github.com/okfn-brasil/querido-diario/pull/964/commits/13646c54e9b527d3b44ee3137d827df21f5d2030
  2. Adicionei um commit habilitando a cidade de Banzaé em produção!! 🎉 : https://github.com/okfn-brasil/querido-diario/pull/964/commits/a9e61f6a485a729ad932b0f907bf16130fd4c39e
  3. E precisei rodar uma rotina de correção da formação do código: https://github.com/okfn-brasil/querido-diario/pull/964/commits/557a4ad5ac1268cddd47a07804426cfd70d346a9 Nesse caso, isso indica que na sua máquina o pre-commit não está instalado devidamente. Saiba mais em: Formatação Automática de Código