4.4 Usando o esaj
para listar processos
A CJSG possui vários parâmetros para consulta de decisões. As mais usadas são
- Palavras-chave
- Classe, assunto e câmaras
- Intervalos de datas
4.4.1 Pesquisa por palavras-chave
A pesquisa por palavras-chave não tem segredo. Basta você seguir as especificações deste link.
É importante ressaltar alguns pontos
O e-SAJ não disponibiliza seu tesauro (dicionário estruturado) publicamente. Ou seja, você terá de confiar na pesquisa por sinônimos.
Você não pode fazer uma busca completamente vazia. Ou você coloca a palavra-chave, ou você especifica outro parâmetro.
Você pode pesquisar o termo
a OU (NAO a)
, se quiser…
4.4.2 Pesquisa por datas
Você pode usar duas datas para indexar os processos de sua pesquisa. A data de registro é a data em que o serventuário inclui a decisão no sistema. A data de julgamento é a data em que o conjunto de desembargadores proferiram a decisão.
Normalmente, a indexação aconteceria pela data de julgamento, já que queremos vincular os processos à sua data final, não em relação à uma data do sistema. No entanto, as pesquisas indexadas pela data de julgamento não são completamente reprodutíveis, já que à medida que o tempo passa, mais decisões são registradas, mudando a base de julgados.
Regra de bolso:
- Use data de registro se quiser ter certeza de que você pegou todos os casos em um determinado intervalo de tempo.
- Use data de julgamento se você estiver pesquisando casos mais antigos (por exemplo, de 2016 para trás), já que a quantidade de decisões não registradas nesse escopo é negligenciável.
4.4.3 Tabelas de classes, assuntos e câmaras
Classes e assuntos definem, respectivamente, os ritos processuais e os tipos processuais. As câmaras são as casinhas dos desembargadores, que podem ser ordinárias (fixas) ou extraordinárias (eventuais, criadas por diferentes motivos).
As classes e assuntos são definidas em formato de árvore. Cada nível dessa árvore tem uma lista de classes/assuntos e seus respectivos códigos. As tabelas de classes/assuntos podem ser obtidas pela função esaj::cjsg_table()
.
# Não rode esses códigos. Eles baixam os dados diretos da web
classes <- esaj::cjsg_table("classes")
assuntos <- esaj::cjsg_table("subjects")
Já baixamos essas tabelas e colocamos em arquivos .rds
(você sabe o que é um arquivo .rds
?)
classes <- readr::read_rds("data/cjsg_classes.rds")
assuntos <- readr::read_rds("data/cjsg_assuntos.rds")
dplyr::glimpse(assuntos)
#> Observations: 3,088
#> Variables: 12
#> $ name0 <chr> "0 - Assunto não Especificado", "14 - DIREITO TRIBUTÁRIO",…
#> $ id0 <chr> "0", "14", "14", "14", "14", "14", "14", "14", "14", "14",…
#> $ name1 <chr> NA, "5913 - Limitações ao Poder de Tributar", "5913 - Limi…
#> $ id1 <chr> NA, "5913", "5913", "5913", "5913", "5913", "5913", "5916"…
#> $ name2 <chr> NA, "5914 - Imunidade", "5914 - Imunidade", "5914 - Imunid…
#> $ id2 <chr> NA, "5914", "5914", "5914", "5914", NA, NA, NA, NA, NA, NA…
#> $ name3 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ id3 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ name4 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ id4 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
#> $ name5 <chr> "0 - Assunto não Especificado", "10527 - Livros / Jornais …
#> $ id5 <chr> "0", "10527", "10528", "10529", "10530", "5915", "10540", …
Na prática, você vai procurar os assuntos que quer nessa tabela, obter os respectivos códigos e guardar em um vetor.
Cuidado: Lembre-se da cifra oculta! Além disso, muitos casos têm assunto vazio.
A tabela de câmaras segue a mesma regra. A única diferença é que não existem níveis, logo você só precisará procurar os nomes em uma coluna
#> Observations: 1,208
#> Variables: 3
#> $ branch <chr> "DIREITO PÚBLICO", "DIREITO PÚBLICO", "DIREITO PÚBLICO", …
#> $ court <chr> "1.ª Câmara Direito Público B", "1.º Grupo Direito Públic…
#> $ id <chr> "0-434", "0-438", "0-439", "0-57", "0-209", "0-1202", "0-…
4.4.4 A função download_cjsg
Com o escopo em mãos, podemos finalmente começar a baixar dados. Esses são os argumentos da função esaj::download_cjsg()
. Veja a documentação ?esaj::download_cjsg
#> function (query, path = ".", classes = "", subjects = "", courts = "",
#> trial_start = "", trial_end = "", registration_start = "",
#> registration_end = "", min_page = 1, max_page = 1, cores = 1,
#> wait = 0.5, tj = "tjsp", ...)
#> NULL
Esse código baixa duas páginas da pesquisa de jurisprudência usando a palavra-chave homicídio
, salvando os arquivos HTML na pasta data-raw/cjsg
Onde guardar os dados? Ao construir um scraper, é importante guardar os dados brutos na máquina ou num servidor, para reprodutibilidade e manutenção do scraper. Se estiver construindo um pacote do R, o melhor lugar para guardar esses dados é na pasta data-raw
, como sugerido no livro r-pkgs. Se os dados forem muito volumosos, pode ser necessário colocar esses documentos numa pasta externa ao pacote.
4.4.5 Exercícios
- Faça o download das páginas 2 à 5 de uma pesquisa com palavra-chave igual ao seu primeiro nome.
- Descubra quantos resultados tem a sua pesquisa usando a função
esaj::peek_cjsg()
.
4.4.6 Arrumando os dados
Para transformar os arquivos HTML em bases de dados prontas para análise, você precisa rodar esaj::parse_cjsg()
.
files <- fs::dir_ls("data-raw/cjsg", regexp = "page")
d_cjsg <- esaj::parse_cjsg(files)
dplyr::glimpse(d_cjsg)
#> Observations: 40
#> Variables: 13
#> $ file <chr> "data-raw/cjsg/page1.html", "data-raw/cjsg/pag…
#> $ id_page <chr> "1", "2", "3", "4", "5", "6", "7", "8", "9", "…
#> $ id_decision <chr> "11471226", "11471101", "11471322", "11471231"…
#> $ id_lawsuit <chr> "9000112-30.2018.8.26.0050", "0035378-08.2010.…
#> $ class_subject <chr> "Classe/Assunto:\n\t\t\t\t\t\t\t\t\t\t\t Agrav…
#> $ district <chr> "São Paulo", "Ribeirão Preto", "Guarulhos", "S…
#> $ court <chr> "2ª Câmara de Direito Criminal", "2ª Câmara de…
#> $ date_decision <chr> "21/05/2018", "21/05/2018", "17/05/2018", "21/…
#> $ date_publication <chr> "21/05/2018", "21/05/2018", "21/05/2018", "21/…
#> $ date_registration <chr> "21/05/2018", "21/05/2018", "21/05/2018", "21/…
#> $ rapporteur <chr> "Luiz Fernando Vaggione", "Luiz Fernando Vaggi…
#> $ summary <chr> "Agravo em execução. Progressão de regime. Exa…
#> $ txt_summary <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
4.4.7 Exercícios
Na pesquisa que você fez:
- Quem é o relator mais frequente?
- Qual a comarca de origem mais frequente?
- [Difícil] Qual é o assunto mais comum?