Name | juscraper JSON |
Version |
0.1.3
JSON |
| download |
home_page | None |
Summary | Raspador de tribunais e outros sistemas relacionados ao poder judiciário. |
upload_time | 2025-07-20 01:31:16 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.11 |
license | MIT License
Copyright (c) 2024, Julio Trecenti
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
|
keywords |
brasil
courts
judiciary
legal-data
tribunais
web-scraping
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# juscraper
[](https://badge.fury.io/py/juscraper)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://jtrecenti.github.io/juscraper/)
Raspador de tribunais e outros sistemas relacionados ao poder judiciário brasileiro.
## 📦 Instalação
### Via PyPI (Recomendado)
```bash
pip install juscraper
```
### Com uv
```bash
uv add juscraper
```
### Versão de Desenvolvimento
Para instalar a versão mais recente do repositório:
```bash
pip install git+https://github.com/jtrecenti/juscraper.git
```
## 🚀 Exemplo Rápido
```python
import juscraper as jus
# Criar scraper para o TJSP
tjsp = jus.scraper('tjsp')
# Buscar jurisprudência
dados = tjsp.cjpg('golpe do pix', paginas=range(1, 3))
print(f"Encontrados {len(dados)} resultados")
# Visualizar primeiros resultados
dados.head()
```
## 📊 Implementações
### Tribunais Disponíveis
| Tribunal | Funcionalidades Disponíveis |
|----------|-----------------------------------|
| TJSP | cpopg, cposg, cjsg, cjpg, acordao |
| TJRS | cjsg |
| TJPR | cjsg |
| TJDFT | cjsg |
### Agregadores Disponíveis
| Nome | Funcionalidades |
|-----------|-----------------------------------|
| Datajud | listar_processos |
| Jusbr | cpopg, download_documents |
### Notebooks de Exemplo
- [Exemplo TJSP](docs/notebooks/tjsp.ipynb)
- [Exemplo TJRS](docs/notebooks/tjrs.ipynb)
- [Exemplo TJPR](docs/notebooks/tjpr.ipynb)
- [Exemplo TJDFT](docs/notebooks/tjdft.ipynb)
- [Exemplo Datajud](docs/notebooks/datajud.ipynb)
- [Exemplo Jusbr](docs/notebooks/jusbr.ipynb)
## Detalhes
O pacote foi pensado para atender a requisitos básicos de consulta de dados de processos judiciais em alguns tribunais.
Os tribunais implementados vão apresentar os seguintes métodos:
- `.cpopg()`: consulta de processos originários do primeiro grau
- `.cposg()`: consulta de processos originários do segundo grau
- `.cjsg()`: consulta de jurisprudência
Os métodos `.cpopg()` e `.cposg()` recebem como *input* um número de processo no padrão CNJ (NNNNNNN-DD.AAAA.J.TT.OOOO), com ou sem separadores, e retorna um `dict` com tabelas dos elementos do processo (dados básicos, partes, movimentações, entre outros específicos por tribunal).
O método `.cjsg()` recebe como *input* parâmetros de busca de jurisprudência (que variam por tribunal) e retorna uma tabela com os resultados da consulta. Boa parte dos tribunais apresentam limites de paginação ao realizar buscas muito gerais (i.e. que retornam muitos resultados). Nesses casos, o método dará um aviso ao usuário com o número total de resultados, confirmando se deseja mesmo baixar todos os resultados.
### Controle de arquivos
Caso o usuário queira controlar o armazenamento dos arquivos brutos dos processos, deverá implementar as seguintes funções:
- `.cpopg_download()`: baixa o arquivo bruto da consulta de processos originários do primeiro grau, retornando o caminho do arquivo baixado.
- `.cpopg_parse()`: lê e processa um arquivo bruto ou arquivos dentro de uma pasta resultantes da consulta de processos, retornando o `dict` com tabelas dos elementos do processo, como na função `.cpopg()`.
O mesmo se aplica para as funções `.cposg_download()` e `.cposg_parse()`.
Observação: Em alguns tribunais ou situações específicas, a consulta a um processo pode gerar vários arquivos brutos. Por esse motivo, toda consulta cria uma pasta com o número do processo e, dentro dessa pasta, cria os arquivos correspondentes ao download.
Para a função `.cjsg()`, uma consulta pode resultar
### Diferenciais do `juscraper`
- Controle sobre arquivos brutos: o pacote fornece uma interface para baixar e armazenar arquivos brutos (HTML e JSON, por exemplo) dos processos. Por padrão, no entanto, esses arquivos brutos são descartados assim que os dados são processados, com exceção dos arquivos que apresentaram algum problema na leitura.
### Restrições
Por ser um pacote bastante complexo e também nichado, adotamos algumas restrições sobre o escopo do pacote para que seja simples de usar.
- O pacote não utiliza paralelização, ou seja, se o usuário tiver interesse em realizar requisições em paralelo, deverá desenvolver as adaptações necessárias.
- O pacote não possui absolutamente todas as funcionalidades que os tribunais permitem. Se o usuário tiver interesse em consultar processos em mais tribunais, deverá desenvolver os raspadores.
### Por que não um `juscraper` no R?
O pacote `juscraper` foi criado em python inicialmente com o propósito de ser usado em aulas de Ciência de Dados no Direito do Insper. Portanto, não houve incentivo nem fôlego para criar uma alternativa em R.
Já existem soluções usando o R para esses raspadores, como os pacotes `tjsp` e `stj`, mas a comunidade convergiu para soluções em python, que atualmente são mais populares.
### Observação sobre o parâmetro `paginas`
Ao utilizar as funções de download `cjsg_download` e `cjpg_download`, o parâmetro `paginas` deve ser um objeto `range`. Por padrão, `range(0, n)` fará o download das páginas 1 até n (inclusive), ou seja, `range(0, 3)` baixa as páginas 1, 2 e 3. Isso torna o comportamento mais intuitivo para o usuário.
Exemplo de uso:
```python
scraper.cjsg_download(pesquisa="dano moral", paginas=range(0, 5)) # Baixa as páginas 1 a 5
scraper.cjpg_download(pesquisa="contrato", paginas=range(0, 2)) # Baixa as páginas 1 e 2
```
## Instalação em desenvolvimento
Para instalar o pacote em modo desenvolvimento, siga os passos abaixo:
```bash
# Clone o repositório (caso ainda não tenha feito)
$ git clone https://github.com/jtrecenti/juscraper.git
$ cd juscraper
# Instale as dependências e o pacote em modo editável
$ uv pip install -e .
```
## Contribuição
Interessado em contribuir? Verifique as diretrizes de contribuição. Por favor, note que este projeto é lançado com um Código de Conduta. Ao contribuir para este projeto, você concorda em obedecer às suas termos.
## Licença
`juscraper` foi criado por Julio Trecenti. Está licenciado sob os termos da licença MIT.
## Créditos
`juscraper` foi criado com [`cookiecutter`](https://cookiecutter.readthedocs.io/en/latest/) e o [template](https://github.com/py-pkgs/py-pkgs-cookiecutter) `py-pkgs-cookiecutter`.
Raw data
{
"_id": null,
"home_page": null,
"name": "juscraper",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": "Julio Trecenti <jtrecenti@gmail.com>",
"keywords": "brasil, courts, judiciary, legal-data, tribunais, web-scraping",
"author": null,
"author_email": "Julio Trecenti <jtrecenti@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/9a/7d/ce55aef3038a131f177961d8fa81c1c15223ae409b3e6dc6dc11377ce6a7/juscraper-0.1.3.tar.gz",
"platform": null,
"description": "# juscraper\n\n[](https://badge.fury.io/py/juscraper)\n[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n[](https://jtrecenti.github.io/juscraper/)\n\nRaspador de tribunais e outros sistemas relacionados ao poder judici\u00e1rio brasileiro.\n\n## \ud83d\udce6 Instala\u00e7\u00e3o\n\n### Via PyPI (Recomendado)\n\n```bash\npip install juscraper\n```\n\n### Com uv\n\n```bash\nuv add juscraper\n```\n\n### Vers\u00e3o de Desenvolvimento\n\nPara instalar a vers\u00e3o mais recente do reposit\u00f3rio:\n\n```bash\npip install git+https://github.com/jtrecenti/juscraper.git\n```\n\n## \ud83d\ude80 Exemplo R\u00e1pido\n\n```python\nimport juscraper as jus\n\n# Criar scraper para o TJSP\ntjsp = jus.scraper('tjsp')\n\n# Buscar jurisprud\u00eancia\ndados = tjsp.cjpg('golpe do pix', paginas=range(1, 3))\nprint(f\"Encontrados {len(dados)} resultados\")\n\n# Visualizar primeiros resultados\ndados.head()\n```\n\n## \ud83d\udcca Implementa\u00e7\u00f5es\n\n### Tribunais Dispon\u00edveis\n\n| Tribunal | Funcionalidades Dispon\u00edveis |\n|----------|-----------------------------------|\n| TJSP | cpopg, cposg, cjsg, cjpg, acordao |\n| TJRS | cjsg |\n| TJPR | cjsg |\n| TJDFT | cjsg |\n\n### Agregadores Dispon\u00edveis\n\n| Nome | Funcionalidades |\n|-----------|-----------------------------------|\n| Datajud | listar_processos |\n| Jusbr | cpopg, download_documents |\n\n### Notebooks de Exemplo\n\n- [Exemplo TJSP](docs/notebooks/tjsp.ipynb)\n- [Exemplo TJRS](docs/notebooks/tjrs.ipynb)\n- [Exemplo TJPR](docs/notebooks/tjpr.ipynb)\n- [Exemplo TJDFT](docs/notebooks/tjdft.ipynb)\n- [Exemplo Datajud](docs/notebooks/datajud.ipynb)\n- [Exemplo Jusbr](docs/notebooks/jusbr.ipynb)\n\n## Detalhes\n\nO pacote foi pensado para atender a requisitos b\u00e1sicos de consulta de dados de processos judiciais em alguns tribunais.\n\nOs tribunais implementados v\u00e3o apresentar os seguintes m\u00e9todos:\n\n- `.cpopg()`: consulta de processos origin\u00e1rios do primeiro grau\n- `.cposg()`: consulta de processos origin\u00e1rios do segundo grau\n- `.cjsg()`: consulta de jurisprud\u00eancia\n\nOs m\u00e9todos `.cpopg()` e `.cposg()` recebem como *input* um n\u00famero de processo no padr\u00e3o CNJ (NNNNNNN-DD.AAAA.J.TT.OOOO), com ou sem separadores, e retorna um `dict` com tabelas dos elementos do processo (dados b\u00e1sicos, partes, movimenta\u00e7\u00f5es, entre outros espec\u00edficos por tribunal).\n\nO m\u00e9todo `.cjsg()` recebe como *input* par\u00e2metros de busca de jurisprud\u00eancia (que variam por tribunal) e retorna uma tabela com os resultados da consulta. Boa parte dos tribunais apresentam limites de pagina\u00e7\u00e3o ao realizar buscas muito gerais (i.e. que retornam muitos resultados). Nesses casos, o m\u00e9todo dar\u00e1 um aviso ao usu\u00e1rio com o n\u00famero total de resultados, confirmando se deseja mesmo baixar todos os resultados.\n\n### Controle de arquivos\n\nCaso o usu\u00e1rio queira controlar o armazenamento dos arquivos brutos dos processos, dever\u00e1 implementar as seguintes fun\u00e7\u00f5es:\n\n- `.cpopg_download()`: baixa o arquivo bruto da consulta de processos origin\u00e1rios do primeiro grau, retornando o caminho do arquivo baixado.\n- `.cpopg_parse()`: l\u00ea e processa um arquivo bruto ou arquivos dentro de uma pasta resultantes da consulta de processos, retornando o `dict` com tabelas dos elementos do processo, como na fun\u00e7\u00e3o `.cpopg()`.\n\nO mesmo se aplica para as fun\u00e7\u00f5es `.cposg_download()` e `.cposg_parse()`.\n\nObserva\u00e7\u00e3o: Em alguns tribunais ou situa\u00e7\u00f5es espec\u00edficas, a consulta a um processo pode gerar v\u00e1rios arquivos brutos. Por esse motivo, toda consulta cria uma pasta com o n\u00famero do processo e, dentro dessa pasta, cria os arquivos correspondentes ao download.\n\nPara a fun\u00e7\u00e3o `.cjsg()`, uma consulta pode resultar\n\n### Diferenciais do `juscraper`\n\n- Controle sobre arquivos brutos: o pacote fornece uma interface para baixar e armazenar arquivos brutos (HTML e JSON, por exemplo) dos processos. Por padr\u00e3o, no entanto, esses arquivos brutos s\u00e3o descartados assim que os dados s\u00e3o processados, com exce\u00e7\u00e3o dos arquivos que apresentaram algum problema na leitura.\n\n### Restri\u00e7\u00f5es\n\nPor ser um pacote bastante complexo e tamb\u00e9m nichado, adotamos algumas restri\u00e7\u00f5es sobre o escopo do pacote para que seja simples de usar.\n\n- O pacote n\u00e3o utiliza paraleliza\u00e7\u00e3o, ou seja, se o usu\u00e1rio tiver interesse em realizar requisi\u00e7\u00f5es em paralelo, dever\u00e1 desenvolver as adapta\u00e7\u00f5es necess\u00e1rias.\n- O pacote n\u00e3o possui absolutamente todas as funcionalidades que os tribunais permitem. Se o usu\u00e1rio tiver interesse em consultar processos em mais tribunais, dever\u00e1 desenvolver os raspadores.\n\n### Por que n\u00e3o um `juscraper` no R?\n\nO pacote `juscraper` foi criado em python inicialmente com o prop\u00f3sito de ser usado em aulas de Ci\u00eancia de Dados no Direito do Insper. Portanto, n\u00e3o houve incentivo nem f\u00f4lego para criar uma alternativa em R.\n\nJ\u00e1 existem solu\u00e7\u00f5es usando o R para esses raspadores, como os pacotes `tjsp` e `stj`, mas a comunidade convergiu para solu\u00e7\u00f5es em python, que atualmente s\u00e3o mais populares.\n\n### Observa\u00e7\u00e3o sobre o par\u00e2metro `paginas`\n\nAo utilizar as fun\u00e7\u00f5es de download `cjsg_download` e `cjpg_download`, o par\u00e2metro `paginas` deve ser um objeto `range`. Por padr\u00e3o, `range(0, n)` far\u00e1 o download das p\u00e1ginas 1 at\u00e9 n (inclusive), ou seja, `range(0, 3)` baixa as p\u00e1ginas 1, 2 e 3. Isso torna o comportamento mais intuitivo para o usu\u00e1rio.\n\nExemplo de uso:\n\n```python\nscraper.cjsg_download(pesquisa=\"dano moral\", paginas=range(0, 5)) # Baixa as p\u00e1ginas 1 a 5\nscraper.cjpg_download(pesquisa=\"contrato\", paginas=range(0, 2)) # Baixa as p\u00e1ginas 1 e 2\n```\n\n## Instala\u00e7\u00e3o em desenvolvimento\n\nPara instalar o pacote em modo desenvolvimento, siga os passos abaixo:\n\n```bash\n# Clone o reposit\u00f3rio (caso ainda n\u00e3o tenha feito)\n$ git clone https://github.com/jtrecenti/juscraper.git\n$ cd juscraper\n\n# Instale as depend\u00eancias e o pacote em modo edit\u00e1vel\n$ uv pip install -e .\n```\n\n## Contribui\u00e7\u00e3o\n\nInteressado em contribuir? Verifique as diretrizes de contribui\u00e7\u00e3o. Por favor, note que este projeto \u00e9 lan\u00e7ado com um C\u00f3digo de Conduta. Ao contribuir para este projeto, voc\u00ea concorda em obedecer \u00e0s suas termos.\n\n## Licen\u00e7a\n\n`juscraper` foi criado por Julio Trecenti. Est\u00e1 licenciado sob os termos da licen\u00e7a MIT.\n\n## Cr\u00e9ditos\n\n`juscraper` foi criado com [`cookiecutter`](https://cookiecutter.readthedocs.io/en/latest/) e o [template](https://github.com/py-pkgs/py-pkgs-cookiecutter) `py-pkgs-cookiecutter`.\n",
"bugtrack_url": null,
"license": "MIT License\n \n Copyright (c) 2024, Julio Trecenti\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n ",
"summary": "Raspador de tribunais e outros sistemas relacionados ao poder judici\u00e1rio.",
"version": "0.1.3",
"project_urls": {
"Bug Tracker": "https://github.com/jtrecenti/juscraper/issues",
"Changelog": "https://github.com/jtrecenti/juscraper/blob/main/CHANGELOG.md",
"Documentation": "https://jtrecenti.github.io/juscraper/",
"Homepage": "https://github.com/jtrecenti/juscraper",
"Repository": "https://github.com/jtrecenti/juscraper.git"
},
"split_keywords": [
"brasil",
" courts",
" judiciary",
" legal-data",
" tribunais",
" web-scraping"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "9fe2a00272ac7055d434441141471717a409f439580cc43b1f0681f13b3a3e3e",
"md5": "c9cc457873e73bccb6b0c867d92eb74e",
"sha256": "2ff85d9dc0ce0915ffa8712aabd7786647a78dc59ad0b35ba703bb33142919ec"
},
"downloads": -1,
"filename": "juscraper-0.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c9cc457873e73bccb6b0c867d92eb74e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 61194,
"upload_time": "2025-07-20T01:31:15",
"upload_time_iso_8601": "2025-07-20T01:31:15.101974Z",
"url": "https://files.pythonhosted.org/packages/9f/e2/a00272ac7055d434441141471717a409f439580cc43b1f0681f13b3a3e3e/juscraper-0.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9a7dce55aef3038a131f177961d8fa81c1c15223ae409b3e6dc6dc11377ce6a7",
"md5": "da1cc622da66cc10e657963d63592bc9",
"sha256": "d1d3776f11aa7348eccd8107eb7e68425661ac5dd404985677c2371872c778d9"
},
"downloads": -1,
"filename": "juscraper-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "da1cc622da66cc10e657963d63592bc9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 171909,
"upload_time": "2025-07-20T01:31:16",
"upload_time_iso_8601": "2025-07-20T01:31:16.348668Z",
"url": "https://files.pythonhosted.org/packages/9a/7d/ce55aef3038a131f177961d8fa81c1c15223ae409b3e6dc6dc11377ce6a7/juscraper-0.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-20 01:31:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jtrecenti",
"github_project": "juscraper",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "juscraper"
}