-
-
Notifications
You must be signed in to change notification settings - Fork 416
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
Conversation
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 ;) |
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.
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") |
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.
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?
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.
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.
Valeu @almeidadm ! |
f4a73d8
to
78ac312
Compare
@almeidadm, obrigada pela PR! Agilizei a revisão e já acomodei as modificações para desempacar logo o problema em produção que ela resolve. As modificações feitas foram:
Aqui por dois motivos: rrule cria uma recorrência de datetime e self.end_date é date, mais pra frente no código ele reclamava entre não ser possível comparar date e datetime. O segundo motivo é que só adicionar end_date, sem verificar se já estava ou não, permitia o caso em que o end_date existia duas vezes na lista.
O problema aqui são as edições "outras". Como você usou o limite da capacidade da página, não deixou espaço para casos de edições extras e de terceiros. Ou seja, em 20 dias, não necessariamente tem 20 edições; pode ter, seila, 28, por incluir algumas extras e de terceiros. O raspador pode perder essas edições, visto que não está paginando. No print, coloquei 10 como exemplo, pensando que pode ser uma boa margem, mas estou rodando as coletas completas dos 3 raspadores dessa PR para intervalos de 20, 10, 7 e 5 dias. Assim que acabar verifico qual ficou melhor. Até lá, seguem os logs da coleta do ultimo dia e de período, funcionando bem: |
Boa, @trevineju! Também agradeço os comentários sobre as alterações aplicadas! Assim consigo me atentar a essas questões, ou outras similares, em PRs futuros! |
|
nova spider ma_turilandia correcao sufixo em seletor administracaopublica Remoção de trechos e imports sobre tipagem Corrige erros de digitação Corrige lógica de geração de datas Troca forma de reconhecimento de intervalos vazios Resolve casos de redirecionamento Corrige reconhecimento de layout do site Corrige coleta de metadados Reduz intervalo de recorrência de datas
78ac312
to
ab08f52
Compare
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:
Código da(s) spider(s)
custom_settings
em meu raspador.Testes
.log
deste teste está anexado na PR..log
e.csv
deste teste estão anexados na PR..log
e.csv
deste teste estão anexados na PR.Verificações
.csv
gerados pela minha coleta conforme a documentação não encontrando problemas..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.