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

[Manutenção] Novo raspador para Duque Bacelar-MA #1291

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

Conversation

ivanzigoni
Copy link

@ivanzigoni ivanzigoni commented Sep 29, 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.

Descrição

Resolve #1173.

ma_duque_bacelar_coleta-teste_completa.csv
ma_duque_bacelar_coleta-teste_completa.log

ma_duque_bacelar_coleta-teste_intervalo.csv
ma_duque_bacelar_coleta-teste_intervalo.log

ma_duque_bacelar_coleta-teste_ultima.log

@ivanzigoni ivanzigoni force-pushed the refactor/ma_duque_bacelar branch 2 times, most recently from b9d4f3e to d0917f2 Compare September 29, 2024 19:56
@ivanzigoni ivanzigoni marked this pull request as ready for review October 1, 2024 18:16
@ivanzigoni ivanzigoni changed the title Draft: [Manutenção] Novo raspador para Duque Bacelar-MA [Manutenção] Novo raspador para Duque Bacelar-MA Oct 1, 2024
@trevineju
Copy link
Member

parabéns pela PR, @ivanzigoni! Coloquei ela na fila de revisão. Ficou faltando só ter deixado um comentário na issue indicando que ia fazer ela, pra eu poder atualizar o campo de "Assignees" com o seu perfil.

return sorted(output, key=lambda entry: entry.get("date"))

def parse(self, response: scrapy.http.Response):
_, *gazette_element_list, __ = response.css("tr")
Copy link
Member

Choose a reason for hiding this comment

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

Provavelmente usando melhor os recursos de Seletores tem uma solução pra isso, mas se não tiver, outro jeito é selecionando a sublista

Suggested change
_, *gazette_element_list, __ = response.css("tr")
gazette_element_list = response.css("tr")[1:-2]

Comment on lines +18 to +20
def _extract_url(self, url_element: scrapy.Selector):
(raw_path,) = url_element.css("a")

Copy link
Member

Choose a reason for hiding this comment

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

Se precisa só da primeira ocorrência, .get() é o suficiente

Suggested change
def _extract_url(self, url_element: scrapy.Selector):
(raw_path,) = url_element.css("a")
def _extract_url(self, url_element):
raw_path = url_element.css("a").get()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: novo
Development

Successfully merging this pull request may close these issues.

[Manutenção] Novo raspador para Duque Bacelar-MA
2 participants