courts.tjmg.client.TJMGScraper

courts.tjmg.client.TJMGScraper(sleep_time=1.0)

Scraper for the Court of Justice of Minas Gerais.

The TJMG jurisprudence search uses a 5-digit numeric image captcha that is decoded with txtcaptcha <https://github.com/jtrecenti/txtcaptcha>_. Captcha validation is flagged once per session, so pagination reuses the same HTTP session after the first successful decoding.

Methods

Name Description
cjsg Busca jurisprudencia no TJMG (acordaos com captcha numerico).
cjsg_download Run a TJMG acórdão search and return the raw HTML of each page.
cjsg_parse Transform raw TJMG HTML pages into a DataFrame.
cpopg Stub: first degree case search not implemented for TJMG.
cposg Consulta processos de 2o grau do TJMG, com partes e advogados.
cposg_download Baixa o HTML de resultado e de partes/advogados de cada processo.
cposg_parse Converte a saida de cposg_download em DataFrame.

cjsg

courts.tjmg.client.TJMGScraper.cjsg(
    pesquisa=None,
    paginas=None,
    pesquisar_por='ementa',
    order_by=2,
    tamanho_pagina=10,
    **kwargs,
)

Busca jurisprudencia no TJMG (acordaos com captcha numerico).

Parameters

Name Type Description Default
pesquisa str Termo de busca livre. None
paginas int | list | range | None Paginas 1-based; None baixa todas. Default None (cap de 400 resultados, limite do TJMG). None
pesquisar_por {'ementa', 'acordao'} Campo onde buscar. "acordao" busca no inteiro teor. Default "ementa". 'ementa'
order_by int | str Ordenacao: 2 data julgamento, 1 data publicacao, 0 precisao. Default 2. 2
tamanho_pagina int Resultados por pagina (10, 20 ou 50). 10
**kwargs Filtros aceitos pelo schema InputCJSGTJMG. Listados abaixo (todos opcionais; None = sem filtro): * data_julgamento_inicio / data_julgamento_fim (str): DD/MM/AAAA. Backend: dataJulgamentoInicial / dataJulgamentoFinal. * data_publicacao_inicio / data_publicacao_fim (str): DD/MM/AAAA. Backend: dataPublicacaoInicial / dataPublicacaoFinal. {}

Aliases deprecados (popados com DeprecationWarning antes do pydantic): * query / termo -> pesquisa * data_inicio / data_fim -> data_julgamento_inicio / _fim * data_julgamento_de / _ate -> data_julgamento_inicio / _fim * data_publicacao_de / _ate -> data_publicacao_inicio / _fim * linhas_por_pagina -> tamanho_pagina

Raises

Name Type Description
TypeError Quando um kwarg desconhecido e passado.
ValidationError Quando um filtro tem formato invalido.

Returns

Name Type Description
pd.DataFrame pd.DataFrame: DataFrame com os acordaos.

See also

InputCJSGTJMG — schema pydantic e a fonte da verdade dos filtros aceitos.

cjsg_download

courts.tjmg.client.TJMGScraper.cjsg_download(
    pesquisa=None,
    paginas=None,
    pesquisar_por='ementa',
    order_by=2,
    tamanho_pagina=10,
    data_julgamento_inicio=None,
    data_julgamento_fim=None,
    data_publicacao_inicio=None,
    data_publicacao_fim=None,
    **kwargs,
)

Run a TJMG acórdão search and return the raw HTML of each page.

Aceita os mesmos filtros de cjsg; veja la a lista completa.

Parameters

pesquisa : str Free-text search term. paginas : int, list, range or None Pages to download (1-based). None downloads every page (capped at 400 results, the TJMG limit). pesquisar_por : str Field to search in: "ementa" or "acordao" (inteiro teor). order_by : int Sort order: 2 data julgamento, 1 data publicação, 0 precisão. tamanho_pagina : int Results per page (10, 20 or 50). Aceita linhas_por_pagina como alias deprecado. data_julgamento_inicio, data_julgamento_fim : str Julgamento date range (dd/mm/yyyy or yyyy-mm-dd). data_publicacao_inicio, data_publicacao_fim : str Publicação date range (dd/mm/yyyy or yyyy-mm-dd).

cjsg_parse

courts.tjmg.client.TJMGScraper.cjsg_parse(raw_pages)

Transform raw TJMG HTML pages into a DataFrame.

cpopg

courts.tjmg.client.TJMGScraper.cpopg(id_cnj)

Stub: first degree case search not implemented for TJMG.

cposg

courts.tjmg.client.TJMGScraper.cposg(id_cnj, **kwargs)

Consulta processos de 2o grau do TJMG, com partes e advogados.

Usa a consulta processual publica de 2a instancia (www4.tjmg.jus.br/juridico/sf), que nao tem captcha. Um CNJ pode ter varios recursos (apelacao, embargos, agravo…); cada recurso vira uma linha.

Parameters

Name Type Description Default
id_cnj str | list[str] CNJ (20 digitos) ou numero TJMG (17 digitos, ex.: "1.0000.26.408376-7/001" — a coluna processo_interno do cjsg). Mascara opcional. Com CNJ, vem todos os recursos vinculados; com numero TJMG, so aquele recurso. required

Raises

Name Type Description
TypeError Quando um kwarg desconhecido e passado.
ValueError Quando um numero nao tem 17 nem 20 digitos.

Returns

Name Type Description
pd.DataFrame pd.DataFrame: Uma linha por recurso, com id_cnj, processo,
pd.DataFrame processo_interno, segredo_justica, situacao,
pd.DataFrame secretaria, classe, assunto, orgao_julgador,
pd.DataFrame data_cadastramento, data_distribuicao e partes.
pd.DataFrame partes e uma lista de dicts {"tipo", "nome", "baixa", | | | [pd](`pandas`).[DataFrame](`pandas.DataFrame`) | "advogados"}, com advogados = lista de {"oab", "nome"}
pd.DataFrame (oab como publicada, ou None quando ausente).
pd.DataFrame Numeros nao encontrados geram uma linha so com id_cnj.
pd.DataFrame partes fica None em dois casos, separados pela coluna
pd.DataFrame segredo_justica: recurso em segredo de justica
pd.DataFrame (segredo_justica=True) ou falha ao baixar a pagina de partes
pd.DataFrame (segredo_justica=False).

Avisos

UserWarning: Quando alguma consulta falha: timeout, erro de conexao ou status retryable (403, 429, 5xx) que persistem apos as retentativas, ou outro erro HTTP, que nao e repetido. A mensagem lista os numeros afetados. Falha na pagina de resultado gera a linha so com id_cnj, igual a um numero nao encontrado; falha na de partes deixa partes=None.

Exemplo

>>> import juscraper as jus
>>> tjmg = jus.scraper("tjmg")
>>> df = tjmg.cposg("5000344-57.2025.8.13.0461")
>>> advs = df.explode("partes").dropna(subset=["partes"])

See also

InputCPOSGTJMG / OutputCPOSGTJMG.

cposg_download

courts.tjmg.client.TJMGScraper.cposg_download(id_cnj, **kwargs)

Baixa o HTML de resultado e de partes/advogados de cada processo.

Retorna uma lista alinhada com id_cnj. Veja cposg para os formatos de numero aceitos e o UserWarning emitido quando alguma consulta falha; aqui a falha aparece como None no HTML correspondente.

cposg_parse

courts.tjmg.client.TJMGScraper.cposg_parse(raw)

Converte a saida de cposg_download em DataFrame.