Extrator de dados do jupiterweb
O programa é composto de dois arquivos:
- Um constando apenas de classes complementares que representam as unidades e as disciplinas
- Outro que executa o processo de extração dos dados do jupiterweb
Em essência o programa faz um get para a pagina do jupiterweb que contem a lista das unidades, onde extra quais sao as unidades ativas e algumas informçoes sovre elas (nome e código da disciplina).
A partir da informação, extrai-se quais as disciplinas são ministradas e, em caso de encerradas, foram ministradas pelas unidades. Destas disciplinas existem as informaçoes basicas (Codigo, nome, data de ativação e desativação) e informaçoes complementares, que podem ser obrigatorias ou não (Creditos, Metodo, Docente, Tipo de recuperação, etc)
No codigo principal existe um método toJson que importa os dados extraidos relativo a cada unidade e suas disciplinas para um arquivo no formato Json.
O formato do arquivo Json é:
{
codigo_da_unidade: {
nome: "nome da unidade",
code: "codigo_da_unidade",
disciplinas: {
codigo_da_disciplina: {
nome: "nome_da_disciplina",
codigo: "codigo_da_disciplina",
ativacao: "data_de_ativacao",
desativacao: "data_de_desativacao",
credito_aula: "numero_de_creditos",
credito_trabalho: "numero_de_creditos",
tipo: "semestral/anual",
objetivos: "objetivos_da_disciplina",
docentes: "docentes",
programa: "programa_da_disciplina",
programa_resumido: "programa_resumido_da_disciplina",
metodo: "metodo_de_avaliacao",
criterio: "criterio_de_aprovacao",
norma_de_recuperacao: "tipo_de_recuperacao",
bibliografia: "bibliografia_da_disciplina"
},
#Outras_disciplinas_da_unidade#
}
},
#outras_unidades#
}
Consta no repositório um arquivo extraído do jupiterweb no dia 02/12/2021 como exemplo. Lembrando que eventuais mudanças de layout no jupiterweb podem interferir no desempenho e bom funcionamento do algoritmo, ja que os dados são obtidos por meio de web scrapping e web crawling.