1. Cronograma

  • 26/3 - Atividade em classe: Workshop extração de dados I
  • Atividade em grupo: Extrair dados para utilizar no módulo de organização de dados
a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a

2. Introdução

Nesta aula, faremos um primeiro workshop de extração de dados, para aprender as estruturas das páginas, o uso de comandos de extração e de gravação de dados. Você aprenderá, passo a passo, a construir o extrator disponível na página Extrator de dados 1: Controle concentrado.

Na aula seguinte trataremos de estratégias para organizar esses dados em uma tabela, gerando assim um banco de dados relacional.

3. Leituras

3.1 Leitura obrigatória

1: Costa, Alexandre. Data Mining Judicial I: Extração e Organização de Dados. Dsd.arcos, 2020.

2: Costa, Alexandre. Data Mining Judicial II : Extrator Básico de Dados Judiciais. Dsd.arcos, 2020.

4. Atividade

4.1 Atividade em classe

O texto desta semana gera um extrator para os dados para as páginas do controle concentrado. O workshop seguirá os mesmos passos, com os mesmos exercícios, mas estará voltado para um outro conjunto de dados: os dados constantes da pesquisa processual, na aba Processos do menu de pesquisa contido na página principal.

4.2 Atividade: Gerar dados para o Módulo 7

Neste módulo, você desenvolveu um algoritmo de extração de dados de uma página simples, em que as informações relevantes estão em HTML. No módulo seguinte, trabalharemos os dados que você extraiu, transformando a sua base não -relacional de dados  (que não têm a forma de uma tabela), em uma base relacional de dados.

Para que esse trabalho seja possível, extraia dados das ADIs de 5000 a 5500, para que possamos modelar o nosso Módulo Gerador de CSV a partir das informações relativas a esses processos.

4.2 Atividade complementar

O texto desta semana gera um extrator para os dados para as páginas do controle concentrado e não para as informações gerais. O workshop cria um extrator para o código fonte gerado pelas pesquisas de cada processo.

Se você olhar com cuidado esse código, verá que não estão neles várias informações que constam da página que você abre. Isso ocorre porque esses dados não constam do código fonte gerado por essa consulta, mas do código gerado por uma outra consulta, feita pela própria página que você abre.

Como isso é possível? Com a utilização de um código escrito na linguagem javascript, que envia um novo request.get assim que você abre o código fonte no seu computador. Esse código tem o seguinte formato:

<script type="text/javascript" src="/scripts/jquery-3.2.1.min.js"></script>
<script>
    $.get('abaPartes.asp?incidente=1502064', function(resposta) {
        $('#partes').html($(resposta)[0]);
        $('#resumo-partes').prepend($(resposta)[2]);
    });
    $('#andamentos').load('abaAndamentos.asp?incidente=1502064&imprimir=');

    $.get('abaInformacoes.asp?incidente=1502064', function(resposta) {
        $('#informacoes').html($(resposta)[0]);
        $('#descricao-procedencia').html($(resposta)[2]);
    });

    $('#decisoes').load('abaDecisoes.asp?incidente=1502064');
    $('#sessao-virtual').load('abaSessao.asp?incidente=1502064');
    $('#deslocamentos').load('abaDeslocamentos.asp?incidente=1502064');
    $('#peticoes').load('abaPeticoes.asp?incidente=1502064');
    $('#recursos').load('abaRecursos.asp?incidente=1502064');
    $('#pautas').load('abaPautas.asp?incidente=1502064');

</script>

Eu também não sei nada de javascript, mas o que você já aprendeu sobre HTTP (e a solicitação get) e sobre URL (e o formato das querries) já permite ver que, dentro dos parênteses que sucedem o .load, existe uma parte de um URL, determinado pelo indicador único dos processos no STF, que é o campo incidente.

Com esses fragmentos de URL, você pode montar os URLs completos capazes de extrair os dados contidos em cada uma das abas da página processual, e que não constam do código fonte da sua consulta baseada no número do processo.

O seu desafio agora não é apenas o de extrair uma página, mas o de extrair todas essas páginas (ao menos as da aba informações e da aba andamentos), e combiná-las em um arquivo com essas informações.