courts.trf3.client.TRF3Scraper

courts.trf3.client.TRF3Scraper(
    verbose=0,
    download_path=None,
    sleep_time=1.0,
    **kwargs,
)

Raspador do TRF3: consulta pública do PJe e busca de jurisprudência.

cpopg consulta processos de 1º grau no PJe (pje1g.trf3.jus.br), pela base TRFConsultaScraper. cjsg pesquisa jurisprudência em web.trf3.jus.br/jurisprudencia, um sistema separado, com sessão e perfil HTTP próprios (perfis_http["cjsg"]).

Methods

Name Description
cjsg Pesquisa jurisprudência no portal do TRF3 (web.trf3.jus.br/jurisprudencia).
cjsg_download Baixa as páginas da lista resumida da busca de jurisprudência do TRF3.
cjsg_parse Converte as páginas de cjsg_download em DataFrame.

cjsg

courts.trf3.client.TRF3Scraper.cjsg(pesquisa=None, paginas=None, **kwargs)

Pesquisa jurisprudência no portal do TRF3 (web.trf3.jus.br/jurisprudencia).

Cada chamada abre uma sessão própria no portal, executa a busca e lê a lista resumida, que já traz ementa e inteiro teor de cada documento. Custa três requisições fixas (abertura da aba, POST da busca e GET do redirect que traz a página 1) e uma por página adicional, com sleep_time entre páginas.

Parameters

Name Type Description Default
pesquisa str | None Texto da pesquisa livre, com os operadores do portal (operador padrão e). Pode ficar vazio quando outro critério for informado. None
paginas int | list | range | None Páginas 1-based; None baixa todas. Páginas além do total são ignoradas sem requisição. None
**kwargs Any Filtros aceitos por InputCJSGTRF3: * base (str): "acordaos" (default; acórdãos do TRF3), "turmas_recursais" (acórdãos das Turmas Recursais dos JEFs), "monocraticas" (decisões monocráticas do TRF3) ou "monocraticas_turmas_recursais" (decisões monocráticas das Turmas Recursais). * numero_processo (str): Número do processo, com ou sem máscara. * relator (str): Nome do relator ou do relator para o acórdão, como o portal indexa (ex.: "NERY JUNIOR", a forma do dropdown do formulário). O portal casa nomes parciais. * classe (str): Classe como no dropdown, com sigla (ex.: "AI - AGRAVO DE INSTRUMENTO"). * orgao_julgador (str): Órgão julgador, pelo rótulo do dropdown do formulário ("3ª Turma", "11ª Turma Recursal da Seção Judiciária de São Paulo") ou pelo nome indexado da opção ("TERCEIRA TURMA", "11ª TURMA RECURSAL DE SÃO PAULO"), sem diferença de caixa e de espaços. O valor da coluna orgao_julgador do resultado também serve: “1a. seção” vira “1A”, como no formulário, então "QUINTA TURMA - 1A. SEÇÃO" casa com a opção QUINTA TURMA - 1a. SEÇÃO. A busca manda o par que o navegador mandaria, rótulo e nome indexado da opção, lido do formulário da aba, e traz os documentos gravados com qualquer dos dois (medido com “medicamento”: "QUINTA TURMA" traz 576 documentos, contra 443 do rótulo sozinho e 133 do nome indexado sozinho). Rótulo de mais de uma opção, como "5ª Turma" nos acórdãos, levanta ValueError; texto que não casa com nenhuma opção vai como está e só encontra o que o portal grava com essa grafia. Não existe nas bases de monocráticas. * ementa (str): Texto pesquisado só na ementa. Não existe nas bases de monocráticas. * indexacao (str): Texto pesquisado na indexação (“Objeto do Processo” nas Turmas Recursais). Não existe nas bases de monocráticas. * data_julgamento_inicio / data_julgamento_fim (str): Data de julgamento; nas monocráticas, data da decisão. * data_publicacao_inicio / data_publicacao_fim (str): Data de publicação. Não combina com data_julgamento_*. * tamanho_pagina (int): 10 (default), 30 ou 50 documentos por página. {}

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

Raises

Name Type Description
TypeError Quando todos os erros são kwargs desconhecidos.
ValidationError Para os demais erros do schema (base ou tamanho_pagina fora do domínio, data inválida).
ValueError Datas de julgamento e de publicação juntas; filtro que a base de monocráticas não tem; nenhum critério; orgao_julgador que corresponde a mais de uma opção do formulário (a mensagem lista os nomes indexados que desfazem a ambiguidade); com paginas=None, primeira página com documentos e total de resultados ilegível.
BotChallengeBlockedError A Akamai bloqueou o IP (HTTP 403 Access Denied).
RuntimeError O portal devolveu a página de sessão expirada, ou respondeu 200 com uma página que não é a lista de resultados (formulário de busca, manutenção), na primeira página ou nas seguintes; ou, da página 2 em diante, com o aviso de nenhum resultado quando a primeira página informou total maior que zero. Busca sem resultados não é erro: devolve DataFrame vazio.

Returns

Name Type Description
pd.DataFrame pd.DataFrame: Uma linha por documento, com processo,
pd.DataFrame classe, orgao_julgador, relator, relator_acordao,
pd.DataFrame data_julgamento, data_publicacao, meio_publicacao
pd.DataFrame (DJEN, Intimação via sistema, e-DJF3 Judicial 1…),
pd.DataFrame ementa (nas monocráticas, o texto da decisão), base,
pd.DataFrame url_inteiro_teor (íntegra do acórdão no site do TRF3; vazio
pd.DataFrame nas monocráticas) e inteiro_teor (texto completo). Em parte
pd.DataFrame dos acórdãos antigos das Turmas Recursais, ementa vem nula
pd.DataFrame porque o portal manda o bloco da ementa vazio; inteiro_teor
pd.DataFrame vem preenchido. Na medição, com “medicamento”, foram nulas todas
pd.DataFrame as ementas de 2013 e 2014 e parte das de 2011.

Exemplo

>>> import juscraper as jus
>>> trf3 = jus.scraper("trf3")
>>> df = trf3.cjsg(
...     "medicamento", base="turmas_recursais", paginas=range(1, 3),
...     data_julgamento_inicio="2026-01-01", data_julgamento_fim="2026-06-30",
... )

See Also

InputCJSGTRF3: fonte dos filtros aceitos.

cjsg_download

courts.trf3.client.TRF3Scraper.cjsg_download(
    pesquisa=None,
    paginas=None,
    **kwargs,
)

Baixa as páginas da lista resumida da busca de jurisprudência do TRF3.

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

Returns

Name Type Description
list[str] list[str]: HTML de cada página baixada, na ordem pedida.

cjsg_parse

courts.trf3.client.TRF3Scraper.cjsg_parse(resultados_brutos)

Converte as páginas de cjsg_download em DataFrame.

Returns

Name Type Description
pd.DataFrame pd.DataFrame: Uma linha por documento; colunas descritas em cjsg.