aggregators.jusbr.client.JusbrScraper

aggregators.jusbr.client.JusbrScraper(
    verbose=0,
    download_path=None,
    sleep_time=0.5,
    token=None,
    politica=None,
)

Raspador para o JusBR (consulta unificada da PDPJ-CNJ).

Este scraper interage com a API da Plataforma Digital do Poder Judiciario (PDPJ).

Methods

Name Description
auth Define o token JWT para autenticacao e o decodifica para verificacao.
auth_firefox Obtém o token pela sessão do SSO da PDPJ aberta no Firefox.
cpopg Consulta processos pelo número CNJ (ou lista de números CNJ) via API nacional.
download_documents Baixa e limpa os documentos dos processos de um DataFrame.

auth

aggregators.jusbr.client.JusbrScraper.auth(token, **kwargs)

Define o token JWT para autenticacao e o decodifica para verificacao.

Um token recusado não muda o estado: o token anterior, se havia, continua em token e no header.

Raises

Name Type Description
TypeError Quando um kwarg desconhecido e passado (schema InputAuthJusBR, extra="forbid").
ValueError Quando o token e invalido ou esta expirado (ver juscraper.core.auth.validar_jwt).

auth_firefox

aggregators.jusbr.client.JusbrScraper.auth_firefox()

Obtém o token pela sessão do SSO da PDPJ aberta no Firefox.

Lê os cookies de sso.cloud.pje.jus.br do perfil do Firefox, pede um código de autorização ao SSO e o troca por um token, que passa por auth. As duas requisições usam o timeout do perfil "listagem".

Returns

Name Type Description
bool True quando o token foi aceito.

Raises

Name Type Description
RuntimeError Quando a resposta do SSO não traz o cabeçalho Location, o code no fragmento ou o access_token; em geral, sessão do Firefox ausente ou vencida.
ValueError Quando o token devolvido é inválido ou está expirado.
requests.RequestException Falha de rede ao falar com o SSO.

cpopg

aggregators.jusbr.client.JusbrScraper.cpopg(id_cnj, **kwargs)

Consulta processos pelo número CNJ (ou lista de números CNJ) via API nacional.

Uma consulta que falha não interrompe o lote: a linha sai com status_consulta igual a STATUS_CONSULTA_FALHA (de juscraper.core.failures) e o motivo na coluna motivo_falha (http_<status>, retry_esgotado_<status>, timeout, conexao ou json_invalido). O CNJ que a listagem responde com 404 sai “Nao encontrado na lista inicial”, com motivo_falha None; o 404 nos detalhes é falha (http_404).

O 403 na listagem sai http_403, e o motivo não diz a causa. Em campo, ele apareceu junto de processo ausente do data lake da PDPJ, mas também pode ser negativa real de acesso. Este raspador não consulta a PDPJ para separar os dois casos; quem precisa separar cruza o resultado com PdpjScraper, que marca o processo ausente com nao_encontrado.

Raises

Name Type Description
TypeError Quando um kwarg desconhecido e passado (schema InputCPOPGJusBR, extra="forbid").
RuntimeError Quando auth(token) nao foi chamado antes.
requests.HTTPError Quando a API responde 401 (token ausente, expirado ou inválido). As linhas já obtidas se perdem, e as falhas anteriores vão numa nota do próprio erro (__notes__).
ErroSsoPdpj Quando o SSO do PJe recusa ou não consegue renovar o token no meio do lote. Propaga como o 401, com as falhas anteriores numa nota do erro.

Avisos

UserWarning: Quando pelo menos uma consulta falhou; um aviso por chamada, com a contagem e alguns exemplos.

download_documents

aggregators.jusbr.client.JusbrScraper.download_documents(
    base_df,
    max_docs_per_process=None,
    **kwargs,
)

Baixa e limpa os documentos dos processos de um DataFrame.

O limite é aplicado ao numeroProcesso em todo o DataFrame, inclusive quando o mesmo processo aparece em mais de uma linha.

Um download que falha não interrompe o lote: o conteúdo sai None e a coluna motivo_falha traz o motivo, o do texto quando o texto falha, senão o do binário. O UserWarning agregado cita as duas falhas.

A peça sem arquivo no metadado não tem conteúdo no data lake, e a API responde 404 ao pedido de texto dela. Ela sai com os metadados, texto e respostas brutas None e motivo_falha None, sem requisição e fora do aviso: o metadado já diz por que não há texto.

Parameters

Name Type Description Default
base_df pd.DataFrame Processos com as colunas numeroProcesso e detalhes, como retornados por cpopg. required
max_docs_per_process int | None Limite de documentos por processo. None baixa todos; 0 não faz downloads. Default None. None
**kwargs Any Nenhum parâmetro adicional é aceito. {}

Raises

Name Type Description
TypeError Quando um kwarg desconhecido e passado (schema InputDownloadDocumentsJusBR, extra="forbid").
ValidationError Quando base_df não é um DataFrame ou max_docs_per_process é negativo.
RuntimeError Quando auth(token) não foi chamado antes.
requests.HTTPError Quando a API responde 401 (token ausente, expirado ou inválido). As linhas já baixadas se perdem, e as falhas anteriores vão numa nota do próprio erro (__notes__).
ErroSsoPdpj Quando o SSO do PJe recusa ou não consegue renovar o token no meio do lote. Propaga como o 401, com as falhas anteriores numa nota do erro.

Avisos

UserWarning: Quando pelo menos um download falhou; um aviso por chamada, emitido quando a coleta termina.

Returns

Name Type Description
pd.DataFrame pd.DataFrame: Uma linha por documento, com metadados, texto limpo,
pd.DataFrame respostas brutas disponíveis e motivo_falha.

See Also

InputDownloadDocumentsJusBR — schema pydantic e fonte da verdade dos parâmetros aceitos.