Last active
July 7, 2025 21:21
-
-
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": 3, | |
| "metadata": { | |
| "id": "lIYdn1woOS1n", | |
| "collapsed": true, | |
| "outputId": "eefea0ce-24c6-4aa0-d2d2-3d872b6ccbad", | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "Requirement already satisfied: requests in /usr/local/lib/python3.11/dist-packages (2.32.3)\n", | |
| "Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.11/dist-packages (4.13.4)\n", | |
| "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from requests) (3.4.2)\n", | |
| "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests) (3.10)\n", | |
| "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/dist-packages (from requests) (2.4.0)\n", | |
| "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/dist-packages (from requests) (2025.6.15)\n", | |
| "Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.11/dist-packages (from beautifulsoup4) (2.7)\n", | |
| "Requirement already satisfied: typing-extensions>=4.0.0 in /usr/local/lib/python3.11/dist-packages (from beautifulsoup4) (4.14.0)\n" | |
| ] | |
| } | |
| ], | |
| "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", | |
| "outputId": "1fd1f192-f197-41d2-b682-dae5a578d1f7", | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| } | |
| }, | |
| "execution_count": 4, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| " ADA LIMA FERREIRA DE SOUSA\n", | |
| " ALANA DRIZIÊ GONZATTI DOS SANTOS\n", | |
| " ALEXANDRE MAGNUS FERNANDES GUIMARAES\n", | |
| " ALEXSANDRO PEREIRA LIMA\n", | |
| " AMANDA MELISSA DAMIAO LEITE\n", | |
| " ANDRE BESSA MOREIRA\n", | |
| " ANDREZZA CRISTINA DA SILVA BARROS SOUZA\n", | |
| " AQUILES MEDEIROS FILGUEIRA BURLAMAQUI\n", | |
| " BRUNO MARQUES FERREIRA DA SILVA\n", | |
| " CAMILA PACELLY BRANDÃO DE ARAÚJO\n", | |
| " CARLA GIOVANA CABRAL\n", | |
| " CARLOS ALEXANDRE CAMARGO DE ABREU\n", | |
| " CARLOS EDUARDO PELLICER DE OLIVEIRA\n", | |
| " DARLAN ARAUJO MOREIRA\n", | |
| " DEBORA MACHADO DE OLIVEIRA MEDINA\n", | |
| " DEUSDEDIT MONTEIRO MEDEIROS\n", | |
| " DIEGO RODRIGO CABRAL SILVA\n", | |
| " DOUGLAS DO NASCIMENTO SILVA\n", | |
| " EDNA MARIA RANGEL DE SA\n", | |
| "EDUARDO JOSE SANDE E OLIVEIRA DOS SANTOS SOUZA\n", | |
| " EFRAIN PANTALEON MATAMOROS\n", | |
| " ELISAMA VIEIRA DOS SANTOS\n", | |
| " ELTON JOSE FIGUEIREDO DE CARVALHO\n", | |
| " EMANUELE ORAZI\n", | |
| " EVERTON SANTI\n", | |
| " FABIANA TRISTAO DE SANTANA\n", | |
| " FABIO JOSE PINHEIRO SOUSA\n", | |
| " FABIO SPEROTTO BEMFICA\n", | |
| " FELIPE MACEDO ZUMBA\n", | |
| " FILIPE MARTEL DE MAGALHAES BORGES\n", | |
| " FLAVIO BEZERRA COSTA\n", | |
| " FRANCISCO EDSON DA SILVA\n", | |
| " FRANCISCO JOSÉ TARGINO VIDAL\n", | |
| " GLAUCIO BEZERRA BRANDAO\n", | |
| " GLICIA MARILI AZEVEDO DE MEDEIROS\n", | |
| " GUSTAVO ZAMPIER DOS SANTOS LIMA\n", | |
| " HECTOR LENY CARRION SALAZAR\n", | |
| " HELTON MAIA PEIXOTO\n", | |
| " HERCULANA TORRES DOS SANTOS\n", | |
| " IDALMIS MILIAN SARDINA MARTINS\n", | |
| " IGOR ROSBERG DE MEDEIROS SILVA\n", | |
| " JAZIELLI CARVALHO SA\n", | |
| " JEFFERSON SOARES DA COSTA\n", | |
| " JOAO RODRIGO SOUZA LEAO\n", | |
| " JOAO VITAL DA CUNHA JUNIOR\n", | |
| " JOILSON BATISTA DE ALMEIDA REGO\n", | |
| " JORGE CARLOS LOPES BRAS SILVA PEREIRA\n", | |
| " JOSE HENRIQUE FERNANDEZ\n", | |
| " JOSE JOSEMAR DE OLIVEIRA JUNIOR\n", | |
| " JOSSANA MARIA DE SOUZA FERREIRA\n", | |
| " KALINE MELO DE SOUTO VIANA\n", | |
| " KELLEN CARLA LIMA\n", | |
| " KELLY KALIANE REGO DA PAZ RODRIGUES\n", | |
| " LAURO WANDERLEY MELLER\n", | |
| " LEANDRO IBIAPINA BEVILAQUA\n", | |
| " LEO GOUVEA MEDEIROS\n", | |
| " LEONARDO ANDRADE DE ALMEIDA\n", | |
| " LEONARDO HENRIQUE BORGES DE OLIVEIRA\n", | |
| " LEONARDO MAFRA BEZERRIL\n", | |
| " LORENA RAMOS CORREIA CARDOSO\n", | |
| " LUCIANA DE FIGUEIREDO LOPES LUCENA\n", | |
| " LUCIO MARASSI DE SOUZA ALMEIDA\n", | |
| " LUIZ EDUARDO CUNHA LEITE\n", | |
| " MARCELA APARECIDA CUCCI SILVESTRE\n", | |
| " MARCELO BORGES NOGUEIRA\n", | |
| " MARCELO KIYOSHI KIAN NAKAEMA\n", | |
| " MARCELO PRATA VIDAL\n", | |
| " MARCONI CAMARA RODRIGUES\n", | |
| " MAXWELL SANTANA LIBÓRIO\n", | |
| " NEEMIAS ALVES DE LIMA\n", | |
| " ORIVALDO VIEIRA DE SANTANA JUNIOR\n", | |
| " PATRICIA KAORI SOARES\n", | |
| " PAULA STEIN\n", | |
| " PAULO DANTAS SESION JUNIOR\n", | |
| " PEDRO DA CUNHA FERREIRA\n", | |
| " RAFAEL CHAVES SOUTO ARAUJO\n", | |
| " RAQUEL MENEZES BEZERRA SAMPAIO\n", | |
| " REX ANTONIO DA COSTA MEDEIROS\n", | |
| " RICARDO WAGNER DE ARAUJO\n", | |
| " RODRIGO BARROS\n", | |
| " RONAI MACHADO LISBOA\n", | |
| " RONALDO CARLOTTO BATISTA\n", | |
| " RUMMENIGGE RUDSON DANTAS\n", | |
| " SALETE MARTINS ALVES\n", | |
| " SEBASTIAO LUIZ DE OLIVEIRA\n", | |
| " SERGIO QUEIROZ DE MEDEIROS\n", | |
| " SERGIO RODRIGUEZ PEREZ\n", | |
| " SIMONE BATISTA\n", | |
| " TARCIRO NORTARSON CHAVES MENDES\n", | |
| " TATIANA DE CAMPOS BICUDO\n", | |
| " THIAGO ISAIAS NOBREGA DE LUCENA\n", | |
| " VERA LUCIA LOPES DE CASTRO\n", | |
| " ZULMARA VIRGINIA DE CARVALHO\n", | |
| " MARY LUCIA DA SILVA NOGUEIRA\n", | |
| " ALLAN ROBSON SILVA VENCESLAU\n", | |
| " ANA TÁZIA PATRÍCIO DE MELO CARDOSO\n", | |
| " ARTHUR GABRIEL BEZERRA DE AZEVEDO\n", | |
| " JADSON LUCAS GOMES SOUZA\n", | |
| " JESAIAS CARVALHO PEREIRA SILVA\n", | |
| " MARCOS VICTOR PIRES RODRIGUES\n", | |
| " MARIANA LIMA DE OLIVEIRA\n", | |
| " MATHEUS SILVA DE SOUZA\n", | |
| " PATRICIA RILLIANE GOMES DA SILVA\n", | |
| " RAUL FELIPE APPIS\n", | |
| " SEBASTIAO GOMES DE ANDRADE NETO\n", | |
| " CAROLINA FONSECA MINNICELLI\n", | |
| " JOAO MODESTO DE MEDEIROS JUNIOR\n", | |
| " MARIA JOSE SANTOS LIMA\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [], | |
| "metadata": { | |
| "id": "0gEGZnvYuVqQ" | |
| }, | |
| "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_", | |
| "outputId": "44da7451-f00a-4d76-f6c2-1b0bbecdffba", | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 356 | |
| } | |
| }, | |
| "execution_count": 5, | |
| "outputs": [ | |
| { | |
| "output_type": "error", | |
| "ename": "KeyboardInterrupt", | |
| "evalue": "Interrupted by user", | |
| "traceback": [ | |
| "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
| "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", | |
| "\u001b[0;32m/tmp/ipython-input-5-1314974756.py\u001b[0m in \u001b[0;36m<cell line: 0>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Perguntando ao usuário se deseja salvar os nomes em um arquivo .txt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0msalvar\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Deseja salvar os nomes em um arquivo .txt? (s/n): \"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstrip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlower\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msalvar\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m's'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;31m# Salvando a coluna 'Nome' em um arquivo .txt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
| "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/ipykernel/kernelbase.py\u001b[0m in \u001b[0;36mraw_input\u001b[0;34m(self, prompt)\u001b[0m\n\u001b[1;32m 1175\u001b[0m \u001b[0;34m\"raw_input was called, but this frontend does not support input requests.\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1176\u001b[0m )\n\u001b[0;32m-> 1177\u001b[0;31m return self._input_request(\n\u001b[0m\u001b[1;32m 1178\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprompt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1179\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_parent_ident\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"shell\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
| "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/ipykernel/kernelbase.py\u001b[0m in \u001b[0;36m_input_request\u001b[0;34m(self, prompt, ident, parent, password)\u001b[0m\n\u001b[1;32m 1217\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyboardInterrupt\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1218\u001b[0m \u001b[0;31m# re-raise KeyboardInterrupt, to truncate traceback\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1219\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyboardInterrupt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Interrupted by user\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1220\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1221\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwarning\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Invalid Message:\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexc_info\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
| "\u001b[0;31mKeyboardInterrupt\u001b[0m: Interrupted by user" | |
| ] | |
| } | |
| ] | |
| } | |
| ], | |
| "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