Skip to content

Instantly share code, notes, and snippets.

@gfrn
Created April 3, 2021 17:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gfrn/eb011be0eb6c3936058f66281eb85d6f to your computer and use it in GitHub Desktop.
Save gfrn/eb011be0eb6c3936058f66281eb85d6f to your computer and use it in GitHub Desktop.
Script to monitor changes in position availability lists in education for the Minas Gerais state
from bs4 import BeautifulSoup
from time import sleep
from telegram.ext import Updater
import requests
old_openings = []
updater = Updater("TOKEN", use_context=True)
while True:
s = requests.Session()
r = s.get("https://controlequadropessoal.educacao.mg.gov.br/divulgacao")
soup = BeautifulSoup(r.content.decode('iso-8859-1'), 'html.parser')
token = soup.find("input", {"name": "data[_Token][key]"})['value']
f_token = soup.find("input", {"name": "data[_Token][fields]"})['value']
data = {"_method": "POST", "data[_Token][key]": token, "data[Filtro][BuscaEscola]": "", "data[Filtro][Vaga][regional_id]": "28", "data[Filtro][Escola][municipio_id]": "6210", "data[Filtro][Vaga][escola_id]": "",
"data[Filtro][Vaga][carreira_id]": "7", "data[Filtro][Vaga][funcao_id]": "13", "data[Filtro][CVaga][conteudo_id]": "", "Filtrar": "", "data[_Token][fields]": f_token, "data[_Token][unlocked]": "Filtrar"}
r = s.post("https://controlequadropessoal.educacao.mg.gov.br/divulgacao",
data = data, headers = {"Content-Type": "application/x-www-form-urlencoded"})
soup = BeautifulSoup(r.content.decode('iso-8859-1'), 'html.parser')
try:
rows = soup.find("table", {"class": "tabela seletor"}).find_all('tr')
except AttributeError:
continue
headers = rows[0].find_all('th')
for (i, head) in enumerate(headers):
headers[i] = head.text
rows = rows[1:]
openings = []
for row in rows:
openings.append(
dict(zip(headers, row.text.split('\n')[1:len(headers)])))
if openings != old_openings:
for o in openings:
updater.bot.send_message(chat_id="ID", text=f"Nova vaga na lista! Detalhes:\nMunicípio:{o['Município']}")
old_openings = openings
s.close()
sleep(10)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment