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

Habilita em produção 23 raspadores de Sergipe #954

Closed trevineju closed 9 months ago

trevineju commented 11 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

Este PR só faz sentido quando #937 for aprovado. Adiciona novas cidades que usam o sistema MunicípioOnline

resolve #949

trevineju commented 10 months ago

ps.: até tenho o log de pequenos testes dessas cidades, porém aguardo a revisão de 937 para não ter que fazer retrabalho

trevineju commented 9 months ago

Comentários

Tabela

MUN PERÍODO SITUAÇÃO LOG DADOS
Aquidaba 2017-02-16 - 2023-11-27 OK completa.txt completa.csv
Barra dos Coqueiros 2022-09-30 - 2023-11-24 2 itens dropped (edição 57 e 142) completa.txt completa.csv
Canhoba 2020-01-16 - 2023-11-21 OK completa.txt completa.csv
Caninde de Sao Francisco 2017-01-02 - 2023-11-27 OK completa.txt completa.csv
Capela 2021-02-04 - 2023-11-27 OK completa.txt completa.csv
Divina Pastora 2019-01-10 - 2023-11-27 OK completa.txt completa.csv
Frei Paulo 2022-01-14 - 2023-11-27 OK completa.txt completa.csv
Ilha das Flores 2017-01-11 - 2023-11-24 OK completa.txt completa.csv
Itabaiana 2023-01-02 - 2023-11-27 OK completa.txt completa.csv
Itabaianinha 2017-01-02 - 2023-11-27 OK completa.txt completa.csv
Japaratuba 2017-03-22 - 2023-11-27 OK completa.txt completa.csv
Moita Bonita 2022-02-17 - 2023-11-24 OK completa.txt completa.csv
Muribeca 2019-05-20 - 2023-11-27 OK completa.txt completa.csv
Siriri 2017-01-03 - 2023-11-28 1 item dropped (edição 573) completa.txt completa.csv
Simão Dias 2021-01-04 - 2023-11-24 2 itens dropped (edição 379 e 337) completa.txt completa.csv
Nossa Senhora das Dores 2017-01-02 - 2023-11-17 OK completa.txt completa.csv
Nossa Senhora de Lourdes 2017-01-12 - 2023-11-29 OK completa.txt completa.csv
Pirambu 2017-03-09 - 2023-11-16 OK completa.txt completa.csv
Poço Verde 2023-01-02 - 2023-11-29 OK completa.txt completa.csv
Riachão do Dantas 2018-11-14 - 2023-11-29 OK completa.txt completa.csv
Rosário do Catete 2021-01-12 - 2023-11-29 OK completa.txt completa.csv
São Domingos 2021-01-12 - 2023-11-17 OK completa.txt completa.csv
Telha 2017-01-20 - 2023-11-16 OK completa.txt completa.csv
trevineju commented 9 months ago

De curiosidade, usei um script que acessa o sqlite local pra validar a coleta

from datetime import datetime
import sqlite3

con = sqlite3.connect("querido-diario.db")
cur = con.cursor()

ibge_codes = []
for row in cur.execute("SELECT DISTINCT territory_id FROM gazettes"): 
    ibge_codes.append(row[0])

resumo = {}

for code in ibge_codes:
    max_date = cur.execute(f"SELECT MAX(date) FROM gazettes WHERE territory_id='{code}'").fetchone()[0]
    min_date = cur.execute(f"SELECT MIN(date) FROM gazettes WHERE territory_id='{code}'").fetchone()[0]

    max_date = datetime.strptime(max_date, '%Y-%m-%d').date()
    min_date = datetime.strptime(min_date, '%Y-%m-%d').date()

    diferenca = max_date - min_date

    resumo[code] = (min_date, max_date)
    print(f"{code} | {min_date} - {max_date} | {diferenca.days}")
trevineju commented 9 months ago

Código 500

Raspagens novas estão apresentando um volume menor de respostas de código 500 image

As raspagens que tem outras datas para comparação (2811, 2911 e 3011 indicando os dias da coleta) apresentaram grande queda. Casos como Simão Dias e Siriri estavam altos no dia 28/11 (100 e 82 respostas de código 500) e diminuiram bastante (para 8 e 3). image

Conclusão

Ainda tem espaço para melhorar, porém já considero um bom avanço. Em nenhum dos casos listados na tabela como OK houve perda de edição por conta disso.

trevineju commented 9 months ago

Problemas com a requisição POST

As cidades de Macambira, Maruim, Nossa Senhora da Glória, Pedrinhas, Propriá e Salgado tem problemas com uma (no geral) requisição POST, o que impede o raspador de obter algum pedaço da série histórica

image

Por exemplo, tendo em vista que o raspador MunicipioOnline.py fatia a coleta por anos (date_filter_request), a requisição POST que falhou para Propriá parece ser a que pegaria o intervalo de 02/22 até 02/23. image

Conclusão

Como esta PR acumulou muitas cidades, estou retirando estas da PR e encerrando-a com as cidades funcionais. Abro outra PR para adicionar uma melhoria em MunicipioOnline.py e sigo testando estas cidades.