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.