fga-eps-mds / 2021.2-INDICAA

Este projeto tem como objetivo criar um software para a melhor visualização de informações relacionadas às matérias ofertadas no SIGAA, com o objetivo de melhorar o trabalho da secretaria na volta gradual as aulas.
https://fga-eps-mds.github.io/2021.2-INDICAA-Wiki/
GNU General Public License v3.0
8 stars 7 forks source link

Mapear dados de vagas disponíveis #83

Closed Matheuspimentell closed 2 years ago

Matheuspimentell commented 2 years ago

Descrição

Nesta issue serão mapeados e documentados os dados a serem lidos, relacionados às vagas disponíveis, para facilitar o tratamento de dados e o web scraping.

Tarefas

Critérios de aceitação

~- [ ] Tabela criada e acessível à todos (em forma de link).~

MorettiGS commented 2 years ago

O valor da quantidade de vagas disponíveis pode ser encontrado com base no link: https://sig.unb.br/sigaa/public/turmas/listar.jsf, após selecionar o nível de ensino, unidade e o semestre desejado.

Como os dados apresentados apenas envolvem a quantidade de vagas ofertadas e a quantidade de alunos matriculados, a quantidade de vagas disponíveis deve ser calculada pela diferença entre essas duas.

Visualmente, os dados de quantidade de vagas ofertadas e o de quantidade de alunos matriculados encontram-se na quinta e sexta coluna da tabela, respectivamente. Dentro do código, visto que existe um < td > a mais, os dados se encontram uma coluna à frente, ficando na sexta e sétima colunas.

O método de mapeamento das variáveis seguem o seguinte modelo, por xpath:

#Vagas ofertadas:
driver.find_element_by_xpath('//*[@id="turmasAbertas"]/table/tbody/tr[X]/td[6]')

#Alunos matriculados:
driver.find_element_by_xpath('//*[@id="turmasAbertas"]/table/tbody/tr[X]/td[7]')

Onde o X em "tr[X]" representa o número da linha desejada (obs: também contamos a linha que tem o código e nome da disciplina).

Porém, também seria possível encontrar os dados de forma mais simples, visto que as ocorrências de "style='text-align: center;'" ocorrem apenas para esses dois dados, assim utilizando:

driver.find_elements_by_xpath('//*[@id="turmasAbertas"] and [@style="text-align: center"])

Retornando assim valores como: qtde de vagas para a linha 1, qtde de alunos matriculados para a linha 1, qtde de vagas para a linha 2, etc...

Colaboradores

@MorettiGS

Matheuspimentell commented 2 years ago

O mapeamento dos dados foi feito de forma correta e a descrição está bem explicativa.