Algoritmo em Python que realiza a extração de ações de quaisquer classes processuais, a partir dos resultados das pesquisas na página principal (antes chamada de Acompanhamento Processual) e grava arquivos com os dados de cada processo. Para compreender as funcionalidades, leia o texto Extrator Básico de Dados Judiciais, que trata de um extrator mais simples, mas que utiliza as mesmas ferramentas usadas neste código.
# -*- coding: utf-8 -*-
import requests
def extrair(fonte,MarcadorInicio, MarcadorFim):
inicio = fonte.find(MarcadorInicio)
inicio = inicio + len(MarcadorInicio)
fim = fonte.find(MarcadorFim, inicio)
return fonte[inicio:fim]
# Definição dos parâmetros de busca
Classe = "ADI"
NumeroInicial = 1
NumeroFinal = 6000
for n in range (NumeroFinal-NumeroInicial+1):
# Módulo de geração de URLs
##url acompanhamento processual
NumProcesso = str(NumeroFinal-n)
url = 'http://portal.stf.jus.br/processos/listarProcessos.asp?classe=' + Classe + '&numeroProcesso='+ NumProcesso
print (url)
# Módulo básico de extração andamento processual
html0 = requests.get(url)
html0.encoding = 'utf-8'
html = html0.text
incidente = extrair(html,'id="incidente" value="', '">')
if 'Processo não encontrado' in html:
print ("Não há processo")
nomedoarquivo = 'ADIempty.txt'
arquivo = open(nomedoarquivo, 'a', encoding='utf-8')
arquivo.write(NumProcesso +',')
arquivo.close()
else:
htmlfonte = extrair(html,'<div class="processo-titulo m-b-8">','<div class="p-l-0" id="resumo-partes">')
htmlpartes = requests.get('http://portal.stf.jus.br/processos/abaPartes.asp?incidente='+incidente)
htmlpartes.encoding = 'utf-8'
htmlpartes = htmlpartes.text
htmlinformacoes = requests.get('http://portal.stf.jus.br/processos/abaInformacoes.asp?incidente='+incidente)
htmlinformacoes.encoding = 'utf-8'
htmlinformacoes = htmlinformacoes.text
htmlandamentos = requests.get('http://portal.stf.jus.br/processos/abaAndamentos.asp?incidente='+incidente+'&imprimir=1')
htmlandamentos.encoding = 'utf-8'
htmlandamentos = htmlandamentos.text
htmlpauta = requests.get('http://portal.stf.jus.br/processos/abaPautas.asp?incidente='+incidente)
htmlpauta.encoding = 'utf-8'
htmlpauta = htmlpauta.text
htmlsessao = requests.get('http://portal.stf.jus.br/processos/abaSessao.asp?incidente='+incidente)
htmlsessao.encoding = 'utf-8'
htmlsessao = htmlsessao.text
htmldecisoes = requests.get('http://portal.stf.jus.br/processos/abaDecisoes.asp?incidente='+incidente)
htmldecisoes.encoding = 'utf-8'
htmldecisoes = htmldecisoes.text
htmldeslocamentos = requests.get('http://portal.stf.jus.br/processos/abaDeslocamentos.asp?incidente='+incidente)
htmldeslocamentos.encoding = 'utf-8'
htmldeslocamentos = htmldeslocamentos.text
htmlpeticoes = requests.get('http://portal.stf.jus.br/processos/abaPeticoes.asp?incidente='+incidente)
htmlpeticoes.encoding = 'utf-8'
htmlpeticoes = htmlpeticoes.text
htmlrecursos = requests.get('http://portal.stf.jus.br/processos/abaRecursos.asp?incidente='+incidente)
htmlrecursos.encoding = 'utf-8'
htmlrecursos = htmlrecursos.text
# Módulo básico de gravação
nomedoarquivo = 'ADIhtml2\\' + Classe + NumProcesso + '.html'
arquivo = open(nomedoarquivo, 'w', encoding='utf-8')
arquivo.write(url + "\n>>>>incidente=" + incidente + '\nfonte>>>>' +htmlfonte + '\npartes>>>>' + htmlpartes + 'informacoes>>>>' + htmlinformacoes + 'andamentos>>>>' + htmlandamentos + 'pauta>>>>' + htmlpauta + 'sessao>>>>' + htmlsessao + 'decisoes>>>>' + htmldecisoes + 'deslocamentos>>>>' + htmldeslocamentos + 'peticoes>>>>' + htmlpeticoes + 'recursos>>>>' + htmlrecursos)
arquivo.close()