Last active
March 13, 2025 13:17
-
-
Save nelisjunior/46d40e0e745d11e3e0ea62b5b4fadaac to your computer and use it in GitHub Desktop.
LISTAGEM_PROFESSORES_ECT
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/nelisjunior/46d40e0e745d11e3e0ea62b5b4fadaac/ufrn_ect_listagem_professores.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"# LISTAGEM DOCENTES DA ECT UFRN\n", | |
"\n", | |
"Ao executar o código, o resultado impresso será a lista COMPLETA e ATUALIZADA de acordo com o encontrado no próprio SIGAA.\n", | |
"\n", | |
"Ao executar o código basta selecionar todo o conteúdo aqui, copiar e depois colar dentro do formulário na seção com os nomes dos docentes." | |
], | |
"metadata": { | |
"id": "RVr3ellt2igH" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "lIYdn1woOS1n", | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"#!pip install requests beautifulsoup4" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"import requests\n", | |
"from bs4 import BeautifulSoup\n", | |
"import re\n", | |
"import pandas as pd # Para criar e exibir a tabela\n", | |
"\n", | |
"# URL da página\n", | |
"url = \"https://sigaa.ufrn.br/sigaa/public/departamento/professores.jsf?id=4885\"\n", | |
"\n", | |
"# Fazendo a requisição para a página\n", | |
"response = requests.get(url)\n", | |
"\n", | |
"# Verificando se a requisição foi bem-sucedida\n", | |
"if response.status_code == 200:\n", | |
" # Parseando o conteúdo HTML com BeautifulSoup\n", | |
" soup = BeautifulSoup(response.text, 'html.parser')\n", | |
"\n", | |
" # Encontrando todos os elementos que contêm os nomes dos docentes\n", | |
" nomes = soup.find_all('span', class_='nome') # Atualize a classe se necessário\n", | |
"\n", | |
" # Lista para armazenar os dados em formato de matriz [nome, formacao]\n", | |
" dados = []\n", | |
"\n", | |
" # Iterando sobre os elementos encontrados\n", | |
" for nome in nomes:\n", | |
" # Limpando o texto removendo espaços, quebras de linha e caracteres indesejados\n", | |
" texto_limpo = re.sub(r'[\\t\\n\\r]+', ' ', nome.get_text(strip=True))\n", | |
" texto_limpo = re.sub(r'[()]', '', texto_limpo) # Remover parênteses\n", | |
"\n", | |
" # Verificando e separando a formação (DOUTOR, MESTRE) do nome\n", | |
" formacao = None\n", | |
" if 'DOUTOR' in texto_limpo:\n", | |
" formacao = 'DOUTOR'\n", | |
" texto_limpo = texto_limpo.replace('DOUTOR', '').strip()\n", | |
" elif 'MESTRE' in texto_limpo:\n", | |
" formacao = 'MESTRE'\n", | |
" texto_limpo = texto_limpo.replace('MESTRE', '').strip()\n", | |
"\n", | |
" # Adicionando o nome e a formação na lista de dados\n", | |
" dados.append([texto_limpo, formacao])\n", | |
"\n", | |
" # Criando a tabela com pandas\n", | |
" df = pd.DataFrame(dados, columns=['Nome', 'Formação'])\n", | |
"\n", | |
" # Imprimindo apenas a coluna 'Nome'\n", | |
" print(df['Nome'].to_string(index=False))\n", | |
"\n", | |
"else:\n", | |
" print(f\"Erro ao acessar a página: {response.status_code}\")\n" | |
], | |
"metadata": { | |
"id": "zk0HZeRVso0c" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
" # Perguntando ao usuário se deseja salvar os nomes em um arquivo .txt\n", | |
" salvar = input(\"Deseja salvar os nomes em um arquivo .txt? (s/n): \").strip().lower()\n", | |
"\n", | |
" if salvar == 's':\n", | |
" # Salvando a coluna 'Nome' em um arquivo .txt\n", | |
" with open(\"nomes_docentes.txt\", \"w\", encoding=\"utf-8\") as f:\n", | |
" for nome in df['Nome']:\n", | |
" f.write(nome + \"\\n\") # Escreve cada nome em uma nova linha\n", | |
" print(\"Arquivo 'nomes_docentes.txt' salvo com sucesso!\")" | |
], | |
"metadata": { | |
"id": "0ivl7IPu-nu_" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
} | |
], | |
"metadata": { | |
"colab": { | |
"name": "LISTAGEM_PROFESSORES_ECT", | |
"provenance": [], | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"display_name": "Python 3", | |
"name": "python3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment