Skip to content

Instantly share code, notes, and snippets.

@ant-rod-silva
Last active November 14, 2018 18:49
Show Gist options
  • Save ant-rod-silva/b2e1a64e403ff30a67e871f6aa976146 to your computer and use it in GitHub Desktop.
Save ant-rod-silva/b2e1a64e403ff30a67e871f6aa976146 to your computer and use it in GitHub Desktop.
Extração de dados - Portal da Transparência - Servidor
# Este script extrai os dados públicos de um servidor contidos no portal da transparencia: portaltransparencia.gov.br/servidores
# ultima atualizacao: 14/11/18 - Antonio Rodrigo dos Santos Silva
from urllib.request import Request, urlopen
from bs4 import BeautifulSoup
URL='http://www.portaltransparencia.gov.br/servidores/2506291'
page = urlopen(URL)
soup = BeautifulSoup(page, "html.parser")
data1 = soup.find(class_='dados-tabelados')
data2 = data1.find_all('span')
count = 0
for x in data2:
count = count + 1
if count == 1:
nome = x.text.strip()
elif count == 2:
cpf = x.text.strip()
elif count == 3:
servidor = x.text.strip()
elif count == 4:
licenca = x.text.strip()
elif count == 5:
uf = x.text.strip()
elif count == 6:
local_trabalho = x.text.strip()
elif count == 7:
data_ingresso = x.text.strip()
print("nome = {}".format(nome))
print("cpf = {}".format(cpf))
print("servidor = {}".format(servidor))
print("licenca = {}".format(licenca))
print("uf = {}".format(uf))
print("local_trabalho = {}".format(local_trabalho))
print("data_ingresso = {}".format(data_ingresso))
data3 = soup.find(id='collapse-1')
data4 = data3.find_all('span')
count = 0
for x in data4:
count = count + 1
if count == 1:
matricula = x.text.strip()
elif count == 2:
cargo = x.text.strip()
elif count == 3:
classe = x.text.strip()
elif count == 4:
padrao = x.text.strip()
elif count == 5:
nivel = x.text.strip()
elif count == 6:
regime_juridico = x.text.strip()
elif count == 7:
situacao_vinculo = x.text.strip()
elif count == 8:
jornada = x.text.strip()
elif count == 9:
data_nomeacao = x.text.strip()
elif count == 10:
ato_nomeacao = x.text.strip()
elif count == 11:
data_publicacao_doc_ingresso = x.text.strip()
elif count == 12:
forma_ingresso = x.text.strip()
elif count == 13:
data_ingresso = x.text.strip()
elif count == 14:
uf_exercicio = x.text.strip()
elif count == 15:
orgao_sup_exercicio = x.text.strip()
elif count == 16:
orgao_exercicio_siafi = x.text.strip()
elif count == 17:
orgao_exercicio_siape = x.text.strip()
elif count == 18:
uorg_exercicio = x.text.strip()
elif count == 19:
orgao_sup_lotacao = x.text.strip()
elif count == 20:
orgao_lotacao_siafi = x.text.strip()
elif count == 21:
orgao_lotacao_siape = x.text.strip()
elif count == 22:
uorg_lotacao = x.text.strip()
elif count == 23:
ocorrencia_afastamento = x.text.strip()
elif count == 24:
data_ingresso_orgao = x.text.strip()
print("matricula = {}".format(matricula))
print("cargo = {}".format(cargo))
print("classe = {}".format(classe))
print("padrao = {}".format(padrao))
print("nivel = {}".format(nivel))
print("regime_juridico = {}".format(regime_juridico))
print("situacao_vinculo = {}".format(situacao_vinculo))
print("jornada = {}".format(jornada))
print("data_nomeacao = {}".format(data_nomeacao))
print("ato_nomeacao = {}".format(ato_nomeacao))
print("data_publicacao_doc_ingresso = {}".format(data_publicacao_doc_ingresso))
print("forma_ingresso = {}".format(forma_ingresso))
print("data_ingresso = {}".format(data_ingresso))
print("uf_exercicio = {}".format(uf_exercicio))
print("orgao_sup_exercicio = {}".format(orgao_sup_exercicio))
print("orgao_exercicio_siafi = {}".format(orgao_exercicio_siafi))
print("orgao_exercicio_siape = {}".format(orgao_exercicio_siape))
print("uorg_exercicio = {}".format(uorg_exercicio))
print("orgao_sup_lotacao = {}".format(orgao_sup_lotacao))
print("orgao_lotacao_siafi = {}".format(orgao_lotacao_siafi))
print("orgao_lotacao_siape = {}".format(orgao_lotacao_siape))
print("uorg_lotacao = {}".format(uorg_lotacao))
print("ocorrencia_afastamento = {}".format(ocorrencia_afastamento))
print("data_ingresso_orgao = {}".format(data_ingresso_orgao))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment