Closed trevineju closed 9 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
Da lista anterior, uma das cidades (Malhada dos Bois) parou de publicar usando o serviço de MunicipioOnline em 2022. Foi substituída por Simão Dias.
Todas as cidades tem vários casos de 500 Internal Server Error ou TimeoutError. Em todos eles, os arquivos foram coletados dentro das 3 tentativas, mas isso me fez pensar se não seria bom dar uma adaptada das settings.
Os itens abandonados (listados na tabela) são todos problemas de validação.
Aparentemente várias dessas cidades vão dar erro de raspagem diariamente. Isto porque todos os raspadores foram executados ontem e hoje (27 e 28/11) e vários deles, o último diário coletado é de dias atrás (ver coluna "período" da tabela, a data do diário mais recente), me levando a constatar que algumas cidades ou não tem publicação diária ou demora para disponibilizar o diário no site. Penso em abrir uma issue para discutirmos outras frequências de coleta.
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 |
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}")
Raspagens novas estão apresentando um volume menor de respostas de código 500
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).
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.
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
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.
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.
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
start_date
eend_date
definidos) ao menos uma vez e os dados retornados estavam corretos.log_count/ERROR
igual a zero).start_date
no seu spider com a data do Diário Oficial mais antigo disponível na página da cidade.Descrição
Este PR só faz sentido quando #937 for aprovado. Adiciona novas cidades que usam o sistema MunicípioOnline
resolve #949