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.