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

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

Merged
merged 2 commits into from
Nov 30, 2023
Merged

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

merged 2 commits into from
Nov 30, 2023

Conversation

trevineju
Copy link
Member

@trevineju trevineju commented Oct 3, 2023

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

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

resolve #949

@trevineju trevineju added the hacktoberfest-accepted Pull Requests aprovados na Hacktoberfest label Oct 3, 2023
@trevineju
Copy link
Member Author

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

trevineju commented Nov 28, 2023

Comentários

  • 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.
    image

  • Os itens abandonados (listados na tabela) são todos problemas de validação.
    image
    image

  • 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.

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

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 trevineju changed the title Habilita em produção 17 raspadores de Sergipe Habilita em produção 29 raspadores de Sergipe Nov 29, 2023
@trevineju
Copy link
Member Author

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

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.

@trevineju trevineju changed the title Habilita em produção 29 raspadores de Sergipe Habilita em produção 23 raspadores de Sergipe Nov 30, 2023
@trevineju trevineju merged commit 213ba0f into main Nov 30, 2023
2 checks passed
@trevineju trevineju deleted the mo-party branch November 30, 2023 12:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hacktoberfest-accepted Pull Requests aprovados na Hacktoberfest
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Novo spider base]: MunicipioOnline
1 participant