courts.trf5.client.TRF5Scraper
courts.trf5.client.TRF5Scraper(
verbose=0,
download_path=None,
sleep_time=1.0,
**kwargs,
)TRF5 PJe consulta pública (1º grau).
Methods
| Name | Description |
|---|---|
| cpopg | Consulta CPOPG: baixa o detalhe, parseia e (opcional) baixa peças. |
| cpopg_download | Download the detail HTML for each id_cnj. |
| cpopg_parse | Parse a list of detail HTMLs into a one-row-per-process DataFrame. |
cpopg
courts.trf5.client.TRF5Scraper.cpopg(
id_cnj,
download_pecas=False,
diretorio=None,
**kwargs,
)Consulta CPOPG: baixa o detalhe, parseia e (opcional) baixa peças.
Por default retorna apenas os metadados + movimentações + lista de documentos (id/data/descrição). Para também baixar os arquivos das peças (HTML viewer do PJe), passe download_pecas=True + um diretorio. As peças vão para <diretorio>/<cnj>/<id>.html e a coluna pecas no DataFrame ganha a lista de caminhos por processo.
download_pecas vive como flag aqui (em vez de um cpopg_download_pecas separado) porque os tokens ca que identificam cada peça estão amarrados à conversa Seam que produziu o detalhe — peças precisam ser baixadas na mesma requests.Session. Manter as duas etapas numa só chamada evita refazer o GET do detalhe para cada peça.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| id_cnj | str | list[str] | CNJ único ou lista. | required |
| download_pecas | bool | Se True, baixa as peças junto. Default False. |
False |
| diretorio | str | None | Onde gravar as peças. Sobrescreve download_path para esta chamada. Quando omitido, usa download_path (que vira um tempfile.mkdtemp() se nada for passado ao construtor). |
None |
Returns
| Name | Type | Description |
|---|---|---|
| pd.DataFrame | DataFrame com uma linha por CNJ. Colunas: id_cnj, processo, |
|
| pd.DataFrame | classe, assunto, data_distribuicao, orgao_julgador, |
|
| pd.DataFrame | jurisdicao, polo_ativo, polo_passivo, movimentacoes, |
|
| pd.DataFrame | documentos (metadados). Quando download_pecas=True, ganha |
|
| pd.DataFrame | ainda a coluna pecas com a lista de caminhos salvos. |
Raises
| Name | Type | Description |
|---|---|---|
| TypeError | Kwarg desconhecido. | |
| BotChallengeBlockedError | Akamai bloqueou o IP (HTTP 403 “Access Denied”). Aguarde alguns minutos ou troque de IP. |
cpopg_download
courts.trf5.client.TRF5Scraper.cpopg_download(id_cnj, **kwargs)Download the detail HTML for each id_cnj.
Returns a list aligned with the input order. None entries indicate processes the public consultation could not return — typically sigilo, invalid CNJ, ou qualquer erro transiente (rede, payload inesperado do PJe, falha de extração de token). Falhas individuais não interrompem o batch: o CNJ problemático vira None e o loop segue para o próximo, igual ao padrão do TJSP.
cpopg_parse
courts.trf5.client.TRF5Scraper.cpopg_parse(htmls, id_cnj_list)Parse a list of detail HTMLs into a one-row-per-process DataFrame.
Rows for None entries (process not found) carry id_cnj plus None in every other column, so callers can still distinguish “looked up but missing” from “never tried”. Um HTML que sobreviveu ao download mas falhou no parse vira o mesmo formato (linha só com id_cnj) e o batch continua — assim um erro pontual não derruba a coleta inteira.