aggregators.pdpj.client.PdpjScraper

aggregators.pdpj.client.PdpjScraper(
    verbose=0,
    download_path=None,
    sleep_time=0.5,
    token=None,
)

Raspador para a API DATALAKE - Processos do PDPJ.

A API consome JWT do SSO PJe (mesmo provedor do JusBR), entao o uso tipico e: obter o token via portal do PDPJ logado, chamar :meth:auth e usar os endpoints de consulta/download.

Methods

Name Description
auth Define o JWT usado em todas as chamadas autenticadas.
contar Total de processos que casam com os filtros (/processos:contar).
cpopg Recupera os detalhes de processo(s) via API /processos/{n}.
documentos Lista documentos do(s) processo(s) (sem baixar conteudo).
download_documents Baixa textos e/ou binarios dos documentos listados.
existe Checa presenca de processo(s) no Data Lake.
movimentos Lista movimentos do(s) processo(s).
partes Lista partes do(s) processo(s).
pesquisa Busca profunda em GET /api/v1/processos (com paginacao).

auth

aggregators.pdpj.client.PdpjScraper.auth(token)

Define o JWT usado em todas as chamadas autenticadas.

Decodifica sem verificar assinatura (algoritmo gerado pelo PDPJ) para validar o formato e capturar tokens expirados antes de tentar usar.

Raises

Name Type Description
ValueError Quando o token e malformado ou ja expirou.

contar

aggregators.pdpj.client.PdpjScraper.contar(**kwargs)

Total de processos que casam com os filtros (/processos:contar).

Aceita o mesmo subconjunto de filtros de :meth:pesquisa exceto os relacionados a paginacao/ordenacao. Retorna int.

cpopg

aggregators.pdpj.client.PdpjScraper.cpopg(id_cnj)

Recupera os detalhes de processo(s) via API /processos/{n}.

Parameters

Name Type Description Default
id_cnj str | list[str] Numero CNJ ou lista de numeros. required

Returns

Name Type Description
pd.DataFrame DataFrame com uma linha por tramitacao do processo. Colunas
principais pd.DataFrame processo (CNJ pesquisado, dignos de digito),
pd.DataFrame numero_processo (formatado pela API), sigla_tribunal,
pd.DataFrame segmento_justica, data_atualizacao, detalhes
pd.DataFrame (dict com a resposta completa).

See also

– schema pydantic.

documentos

aggregators.pdpj.client.PdpjScraper.documentos(id_cnj)

Lista documentos do(s) processo(s) (sem baixar conteudo).

download_documents

aggregators.pdpj.client.PdpjScraper.download_documents(
    base_df,
    max_docs_per_process=None,
    with_text=True,
    with_binary=False,
)

Baixa textos e/ou binarios dos documentos listados.

base_df pode vir de :meth:documentos (uma linha por documento, ja com id_documento e numero_processo) ou de :meth:cpopg (uma linha por processo com detalhes – nesse caso a lista de documentos e extraida de detalhes['documentos']).

Parameters

Name Type Description Default
base_df pd.DataFrame DataFrame fonte das chamadas. required
max_docs_per_process int | None Limite de documentos baixados por processo. None = sem limite. None
with_text bool Se True (default), baixa o texto via /documentos/{id}/texto. True
with_binary bool Se True, baixa o binario via /documentos/{id}/binario. Default False para nao consumir banda quando o usuario so quer texto. False

Returns

Name Type Description
pd.DataFrame DataFrame com uma linha por documento. Inclui colunas
pd.DataFrame texto e binario (quando solicitados).

Raises

Name Type Description
ValueError Quando with_text e with_binary sao ambos False.

existe

aggregators.pdpj.client.PdpjScraper.existe(id_cnj)

Checa presenca de processo(s) no Data Lake.

Parameters

Name Type Description Default
id_cnj str | list[str] Numero CNJ unico (str) ou lista de numeros. required

Returns

Name Type Description
bool | pd.DataFrame bool quando id_cnj e str; pd.DataFrame com
bool | pd.DataFrame colunas processo e existe quando e list.

See also

– schema pydantic.

movimentos

aggregators.pdpj.client.PdpjScraper.movimentos(id_cnj)

Lista movimentos do(s) processo(s).

partes

aggregators.pdpj.client.PdpjScraper.partes(id_cnj)

Lista partes do(s) processo(s).

pesquisa

aggregators.pdpj.client.PdpjScraper.pesquisa(paginas=None, **kwargs)

Busca profunda em GET /api/v1/processos (com paginacao).

Parameters

Name Type Description Default
paginas int | list[int] | range | None Intervalo 1-based. Aceita int (3 -> primeiras 3 paginas), list, range ou None (todas). None
**kwargs Any Filtros aceitos pelo schema :class:InputPesquisaPdpj (todos opcionais; None = sem filtro): * numero_processo (str) * numero_processo_sintetico (str) * id (str): id interno do processo no Data Lake * cpf_cnpj_parte (str): com formatacao * nome_parte (str) * polo_parte (str): “ATIVO” ou “PASSIVO” * situacao_parte (str) * nome_representante / oab_representante (str) * id_classe (str): codigos separados por virgula * id_assunto_judicial (str): ids separados por virgula * id_orgao_julgador (str | list[str]) * instancia (str): “PRIMEIRO_GRAU”/“SEGUNDO_GRAU”/etc. * segmento_justica (str): “JUSTICA_FEDERAL”/“JUSTICA_ESTADUAL”/etc. * tribunal (str): siglas separadas por virgula (max 5) * data_atualizacao_inicio / _fim (str): ISO datetime * data_primeiro_ajuizamento_inicio / _fim (str): ISO datetime * campo_ordenacao (str): campo de ordenacao decrescente * itens_por_pagina (int): default 100, max 100 {}

Returns

Name Type Description
pd.DataFrame DataFrame com uma linha por processo retornado.

See also

– schema pydantic e a fonte da verdade dos filtros aceitos.