Loading repository data…
Loading repository data…
PietroTamanini / repository
Sistema de automação para consultas da OAB/CNA com cache inteligente em MySQL, integração via API REST e captura automatizada utilizando Playwright. Desenvolvido para reduzir requisições repetidas, melhorar performance e facilitar integrações externas.
Sistema de consulta automatizada da OAB/CNA utilizando:
O sistema consulta automaticamente o site do CNA da OAB, captura o JSON retornado pela API interna e salva os dados no banco MySQL.
Fluxo da aplicação:
PHP
↓
Flask API
↓
Playwright abre o CNA
↓
Preenche formulário
↓
Clica em pesquisar
↓
Captura JSON da API interna
↓
Salva no MySQL
↓
Retorna resultado
O sistema possui:
Cache local no MySQL
Evita consultas repetidas
Evita bloqueio por excesso de requests
Não duplica advogados
Captura automática do reCAPTCHA válido
Busca híbrida:
Baixe:
https://www.python.org/downloads/
Abra o terminal:
pip install -r requirements.txt
playwright install chrome
Importe o arquivo:
database.sql
ou execute:
CREATE DATABASE IF NOT EXISTS oab_system;
USE oab_system;
CREATE TABLE IF NOT EXISTS advogados (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(255),
status VARCHAR(50),
uf VARCHAR(10),
oab VARCHAR(50),
parametro TEXT,
criado_em TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE (oab, uf)
);
No arquivo:
api.py
altere:
MYSQL_CONFIG = {
"host": "localhost",
"user": "root",
"password": "",
"database": "oab_system"
}
python api.py
API:
http://127.0.0.1:5000
Coloque:
index.php
na pasta:
htdocs
do XAMPP/WAMP.
http://localhost/index.php
/
├── api.py
├── index.php
├── database.sql
├── requirements.txt
└── README.md
Busca advogado.
{
"nome": "JHEMILA PAULA REY",
"inscricao": "58898"
}
{
"origem": "mysql",
"items": [
{
"nome": "JHEMILA PAULA REY",
"oab": "58898",
"uf": "SC"
}
]
}
{
"origem": "oab",
"dados": {
"items": [
{
"nome": "JHEMILA PAULA REY",
"inscricao": "58898",
"uf": "SC"
}
]
}
}
MYSQL
↓ não encontrou
CNA OAB
↓
SALVA
↓
RETORNA
MYSQL
↓ encontrou
RETORNA IMEDIATAMENTE
O CNA utiliza:
Por isso requests diretos geralmente retornam:
{
"message": "Recaptcha validation failed"
}
O Playwright resolve isso simulando navegador real.
Exemplo:
34634931586B51695648632B396447526B61643975773D3D
Esse campo é um identificador interno criptografado utilizado pelo CNA para consultas detalhadas do advogado.
O CNA possui:
Recomendado:
requirements.txt:
flask
playwright
mysql-connector-python
Projeto desenvolvido para estudos e automação de consultas CNA/OAB.