-
-
Notifications
You must be signed in to change notification settings - Fork 409
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
Refatoração para o uso de um spider base para DIONET #745
Conversation
0efe04b
to
92df0b7
Compare
92df0b7
to
c09cf29
Compare
TODO: antes de refatorar usando a main de 2023-10-10, verificar as modificações realizadas já mescladas na main comparada às modificações propostas nesse PR |
c09cf29
to
9a24a08
Compare
Oi, @ayharano! Obrigada pela PR 😍 (e sempre, também pela paciência 🫂) Revisei a PR, já adicionando os ajustes pq a contribuição não só atualiza o que temos em produção (Rio de Janeiro e Serra), mas também permite adicionar outras cidades importantes pra gente (Jaru é uma das maiores cidades da Amazônia Legal e São José dos Campos uma das maiores do país, conforme listado em #1086). Já adicionei elas aqui. Histórico
Já atualizei o histórico da main aqui na branch, também 😉 Não dei squash no histórico de commits para ficar transparente pra você as mudanças que fiz (61d593b) MudançasSó teve uma questão principal. Teve dois trechos do spider base que você usou # 1a ocorrência
url = self.json_list_url.format(
year=date_.year,
month=month,
day=day,
)
# 2a ocorrência
gazette_url = self.gazette_id_url.format(gazette_id=gazette_id) E isso criou uma demanda nas classes-filhas de ter os atributos (pegando apenas RJ de exemplo, mas se repetiu nas outras): json_list_url = (
"https://doweb.rio.rj.gov.br"
"/apifront/portal/edicoes/edicoes_from_data/{year}-{month}-{day}.json"
)
gazette_id_url = "https://doweb.rio.rj.gov.br/portal/edicoes/download/{gazette_id}" Aqui, o que entendi da decisão foi: em prol de deixar a classe base mais enxuta, as classes-filhas ficaram mais complexas. Revisei em função do oposto: é melhor que as classes filhas fiquem tão simples quanto for possível, deixando a complexidade na classe dionet. Por isso...
api_path = f"/apifront/portal/edicoes/edicoes_from_data/{date_.year}-{month}-{day}.json"
url = "".join([self.BASE_URL, api_path, self.url_subtheme])
gazette_url = f"{self.BASE_URL}/portal/edicoes/download/{gazette_id}" |
Logs: Para os dois municípios que adicionei, foi a coleta completa: |
Ah! E joguei fora o código anterior de São José dos Campos pq confirmei que o site não existe mais. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Muito muito muito obrigada, @ayharano! ❤️
Pelo cuidado em manter nossa base de código com mais qualidade, saudável, notando padrões e refatoramentos possíveis. E por fazer parte do projeto!
AO ABRIR um Pull Request de um novo raspador (spider), marque com um
X
cada um dos items do checklistabaixo. 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/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
PR com proposta de resolução parcial do item #724, refatorando o código comum a dois spiders já em produção:
rj_rio_de_janeiro
es_serra
Refatorando um spider que ainda não está em produção (aparentemente não é possível acessar os dados anteriores ao start_date da refatoração):
es_associacao_municipios
Adicionando um spider novo:
ms_corumba