import juscraper as jus
tjmg = jus.scraper('tjmg')TJMG — Court of Justice of Minas Gerais
Scraper for the TJMG jurisprudence search at www5.tjmg.jus.br/jurisprudencia. The page uses a 5-digit numeric image captcha that is decoded automatically with txtcaptcha.
| Feature | Supported |
|---|---|
cjsg (acórdãos) |
Yes |
| Date filters | Yes (julgamento and publicação) |
| Captcha | Auto-solved (txtcaptcha) |
Basic search
Download two pages of results to verify pagination works. TJMG requires a date range for broad queries to avoid the “muitos resultados” error.
df = tjmg.cjsg(
'dano moral presumido',
paginas=range(1, 3),
data_julgamento_inicio='2025-01-01',
data_julgamento_fim='2025-03-31',
)
print(df.shape)
df.head(3)(20, 9)
| processo | processo_interno | tipo_ato | relator | data_julgamento | data_publicacao | ementa | proc_ano | proc_numero | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 5002746-88.2023.8.13.0556 | 1.0000.24.466814-1/001 | Apelação Cível | Des.(a) Fernando Lins | 2025-03-31 | 2025-04-01 | APELAÇÃO CÍVEL - AÇÃO DECLARATÓRIA E INDENIZAT... | 24 | 466814 |
| 1 | 5006195-84.2023.8.13.0352 | 1.0000.25.035103-8/001 | Apelação Cível | Des.(a) José Maurício Cantarino Villela (JD 2G) | 2025-03-31 | 2025-04-02 | APELAÇÃO CÍVEL. DIREITO CIVIL E PROCESSUAL CIV... | 25 | 35103 |
| 2 | 5069812-35.2023.8.13.0702 | 1.0000.24.455545-4/001 | Apelação Cível | Des.(a) Fernando Lins | 2025-03-31 | 2025-04-01 | APELAÇÃO CÍVEL - AÇÃO DECLARATÓRIA E INDENIZAT... | 24 | 455545 |
Available columns
df.columns.tolist()['processo',
'processo_interno',
'tipo_ato',
'relator',
'data_julgamento',
'data_publicacao',
'ementa',
'proc_ano',
'proc_numero']
Ementa preview
print(df['ementa'].iloc[0][:300])APELAÇÃO CÍVEL - AÇÃO DECLARATÓRIA E INDENIZATÓRIA - COBRANÇA DE CONTRIBUIÇÃO PARA ASSOCIAÇÃO CIVIL - AUSÊNCIA DE VÍNCULO JURÍDICO - DANOS MORAIS - VALORES DIMINUTOS - DEVER DE INDENIZAR - NÃO CONFIGURAÇÃO - Impugnada a legitimidade de descontos em folha de pagamento de parcelas de contribuição à as
Search options
The scraper supports additional parameters:
pesquisar_por:"ementa"(default) or"acordao"(full text)order_by:2data julgamento,1data publicação,0prec.data_publicacao_inicio/data_publicacao_fim
df_pub = tjmg.cjsg(
'dano moral presumido',
paginas=1,
data_publicacao_inicio='2025-01-01',
data_publicacao_fim='2025-01-31',
)
df_pub[['processo', 'relator', 'data_publicacao']].head()| processo | relator | data_publicacao | |
|---|---|---|---|
| 0 | 0008945-96.2023.8.13.0271 | Des.(a) Valeria Rodrigues | 2025-01-29 |
| 1 | 0026974-91.2021.8.13.0134 | Des.(a) Valeria Rodrigues | 2025-01-29 |
| 2 | 5006545-05.2023.8.13.0245 | Des.(a) Wauner Batista Ferreira Machado (JD 2G) | 2025-01-31 |
| 3 | 5000580-37.2024.8.13.0172 | Des.(a) José Maurício Cantarino Villela (JD 2G) | 2025-01-30 |
| 4 | 5002143-94.2022.8.13.0153 | Des.(a) Magid Nauef Láuar | 2025-01-30 |
Download and parse separately
cjsg_download returns the raw HTML responses, which is useful when you want to keep the original payloads.
raw = tjmg.cjsg_download(
'dano moral presumido',
paginas=1,
data_julgamento_inicio='2025-01-01',
data_julgamento_fim='2025-03-31',
)
print(type(raw), len(raw), 'chars in page 1:', len(raw[0]))
df_raw = tjmg.cjsg_parse(raw)
df_raw.head(3)<class 'list'> 1 chars in page 1: 59219
| processo | processo_interno | tipo_ato | relator | data_julgamento | data_publicacao | ementa | proc_ano | proc_numero | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 5002746-88.2023.8.13.0556 | 1.0000.24.466814-1/001 | Apelação Cível | Des.(a) Fernando Lins | 2025-03-31 | 2025-04-01 | APELAÇÃO CÍVEL - AÇÃO DECLARATÓRIA E INDENIZAT... | 24 | 466814 |
| 1 | 5006195-84.2023.8.13.0352 | 1.0000.25.035103-8/001 | Apelação Cível | Des.(a) José Maurício Cantarino Villela (JD 2G) | 2025-03-31 | 2025-04-02 | APELAÇÃO CÍVEL. DIREITO CIVIL E PROCESSUAL CIV... | 25 | 35103 |
| 2 | 5069812-35.2023.8.13.0702 | 1.0000.24.455545-4/001 | Apelação Cível | Des.(a) Fernando Lins | 2025-03-31 | 2025-04-01 | APELAÇÃO CÍVEL - AÇÃO DECLARATÓRIA E INDENIZAT... | 24 | 455545 |