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

sistema replicavel administracaopublica #1247 #1297

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

almeidadm
Copy link
Contributor

@almeidadm almeidadm commented Oct 4, 2024

AO ABRIR uma Pull Request de um novo raspador (spider), marque com um X cada um dos items da checklist abaixo. Caso algum item não seja marcado, JUSTIFIQUE o motivo.

Layout do site publicador de diários oficiais

Marque apenas um dos itens a seguir:

  • O layout não se parece com nenhum caso da lista de layouts padrão
  • É um layout padrão e esta PR adiciona a spider base do padrão ao projeto junto com alguns municípios que fazem parte do padrão.
  • É um layout padrão e todos os municípios adicionados usam a classe de spider base adequada para o padrão.

Código da(s) spider(s)

  • O(s) raspador(es) adicionado(s) tem os atributos de classe exigidos.
  • O(s) raspador(es) adicionado(s) cria(m) objetos do tipo Gazette coletando todos os metadados necessários.
  • O atributo de classe start_date foi preenchido com a data da edição de diário oficial mais antiga disponível no site.
  • Explicitar o atributo de classe end_date não se fez necessário.
  • Não utilizo custom_settings em meu raspador.

Testes

  • Uma coleta-teste da última edição foi feita. O arquivo de .log deste teste está anexado na PR.
  • Uma coleta-teste por intervalo arbitrário foi feita. Os arquivos de .loge .csv deste teste estão anexados na PR.
  • Uma coleta-teste completa foi feita. Os arquivos de .log e .csv deste teste estão anexados na PR.

Verificações

  • Eu experimentei abrir alguns arquivos de diários oficiais coletados pelo meu raspador e verifiquei eles conforme a documentação não encontrando problemas.
  • Eu verifiquei os arquivos .csv gerados pela minha coleta conforme a documentação não encontrando problemas.
  • Eu verifiquei os arquivos de .log gerados pela minha coleta conforme a documentação não encontrando problemas.

ma_nova_iorque_arbitrario.csv
ma_nova_iorque_arbitrario.log
ma_nova_iorque_completo.csv
ma_nova_iorque_completo.log
ma_nova_iorque_mais_recente.log

Descrição

O sistema replicável foi feita através da consulta ao domínio administracaopublica.com.br. Neste domínio podemos reutilizar os tokens identificadores do domínio originalmente apresentado na Issue #1247 transparenciadministrativa.com.br. Vale ressaltar que o domínio utilizado é disponibilizado na primeira página dos boletins.

Neste novo domínio a consulta ao endereço do arquivo pdf pode ser feita de maneira direta enquanto percorre o site, além de que as alterações de data podem ser feitas diretamente na url consultada.

O raspador consulta os boletins em um intervalo de 20 em 20 dias, correspondendo ao número máximo de boletins a serem mostrados sem navegação em paginação de resultados. Com isso podemos evitar a interação com elementos de renderização dinâmica no site.

@trevineju
Copy link
Member

boa, @almeidadm! Pode deixar um comentário na issue, por favor? Tenho tentado manter o quadro de tarefas atualizado com as pessoas atuando nas issues, e se vc não comentar lá, o GitHub não permite que eu cadastre que você fez. 😓

Colocando tb na fila de revisão ;)

@trevineju trevineju linked an issue Oct 4, 2024 that may be closed by this pull request
1 task
@trevineju trevineju added the hacktoberfest-accepted Pull Requests aprovados na Hacktoberfest label Oct 4, 2024
Copy link

@firefueled firefueled left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Boa @almeidadm!

A task pede para a inclusão de Turilândia também.
Pode incluir este município?

Além disso o código está top! 👏 Falta uma coisinha só

)

def parse(self, response: Response, **kwargs: Any) -> Any:
gazettes = response.css(".diario_item_diario__g9Qfw")

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Este seletor com hash no sufixo pode causar problemas caso o site seja atualizado.
Este hash é adicionado por algum framework frontend que gera html, e dependendo da sua configuração, pode ser modificado sem aviso prévio e frequentemente, resultando em falha do raspador.

Felizmente, podemos remover o sufixo do seletor no Scrapy e usar a sintaxe que faz a busca pelo começo do nome da classe.
Vejo que usou dessa sintaxe na linha 38. Pode usar ela aqui também?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oi, @firefueled! Obrigado pelo feedback.

Para facilitar a revisão, subi dois novos commits para as alterações propostas, mas antes de aprovarem o PR posso fazer um git squash para melhorar o histórico de commits.

@firefueled
Copy link

Valeu @almeidadm !
Agora só ficaram faltando os arquivos csv e log referentes a peritoro e turilândia.
Desculpe por nao alertar para isso no meu último comentário :)

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
Development

Successfully merging this pull request may close these issues.

[Novo spider base]: transparenciaadministrativa
3 participants