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

ma_timon #1012

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

Conversation

engFelipeMonteiro
Copy link

@engFelipeMonteiro engFelipeMonteiro commented Oct 28, 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

<Descreva o seu Pull Request informando a issue (caso exista) que está sendo solucionada ou uma descrição do código apresentado>

@engFelipeMonteiro
Copy link
Author

ocorreu apenas um erro referente ao arquivo suplementar do dia 12/05/2021, no qual realmente não existe

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

#869

@trevineju trevineju linked an issue Nov 10, 2023 that may be closed by this pull request
1 task
from gazette.spiders.base import BaseGazetteSpider


class AmManausSpider(BaseGazetteSpider):
Copy link
Member

Choose a reason for hiding this comment

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

problema O nome do spider está incorreto.

class AmManausSpider(BaseGazetteSpider):
name = "ma_timon"
start_date = datetime.date(2013, 3, 20)
start_urls = ["https://timon.ma.gov.br/diario/pesquisa.php"]
Copy link
Member

Choose a reason for hiding this comment

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

sugestão Quando usamos o start_requests para realizar os primeiros requests do spider, não usamos o start_urls (que na prática é apenas uma abstração para o start_requests)


TERRITORY_ID = "2112209"

def start_requests(self) -> scrapy.FormRequest:
Copy link
Member

Choose a reason for hiding this comment

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

sugestão No projeto não estamos utilizando tipagem de nenhum tipo. Para manter o projeto consistente, não adicionar tipos.

base_url = "https://timon.ma.gov.br/diario/pesquisa.php"

params = {
"TipoDiario_datas": "Executivo", # (Legislativo, Executivo, Todos)
Copy link
Member

Choose a reason for hiding this comment

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

sugestão: COmentário desnecessário, já que só obtemos diários do executivo nesse spider.

method="POST",
formdata=params,
callback=self.parse,
# cb_kwargs={"params": params},
Copy link
Member

Choose a reason for hiding this comment

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

problema Não deixe código comentado. Isso apenas aumenta o ruído dentro do código dificultando a leitura.


def parse(self, response) -> Gazette:
trs = response.xpath(
"/html/body/div/header/div[2]/header/div/div[1]/header/div[2]/div/div/table/tbody/tr"
Copy link
Member

Choose a reason for hiding this comment

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

problema Esse XPath está extremamente específico. O ideal é ser mais geral e mais simples, de modo a não quebrar simplesmente se um div aparecer sem quebrar todo o resto do layout.

)

def parse(self, response) -> Gazette:
trs = response.xpath(
Copy link
Member

Choose a reason for hiding this comment

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

sugestão trs não é um bom nome para essa variável, já que não temos nenhuma ideia do que isso significa. gazettes é um nome melhor.

trs = response.xpath(
"/html/body/div/header/div[2]/header/div/div[1]/header/div[2]/div/div/table/tbody/tr"
)
for tr in trs:
Copy link
Member

Choose a reason for hiding this comment

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

sugestão Com nomes melhores: for gazette in gazettes:

"/html/body/div/header/div[2]/header/div/div[1]/header/div[2]/div/div/table/tbody/tr"
)
for tr in trs:
# import pdb; pdb.set_trace()
Copy link
Member

Choose a reason for hiding this comment

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

problema Não deixe código comentado. Só aumenta a desorganização do código.

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.

Timon-MA
3 participants