Pesquisar
Projeto exclusivo

Desenvolvimento de API REST para scraping do EPROC do TJSP

hoje às 15:40

Descrição do Projeto:

Desenvolver uma API REST em Python/FastAPI para consulta automatizada de processos judiciais no portal e-Proc do TJSP, com sistema de autenticação via token, controle rigoroso de rate limiting e bypass de proteção Cloudflare Turnstile usando Pydoll.

Stack Tecnológica Obrigatória:
• Python 3.10+
• FastAPI
• Pydoll (bypass de Turnstile e web scraping)
• MySQL
• SmartProxy (configuração para proxy rotativo)
• Docker + Docker Compose

1. Sistema de Autenticação
Tabela tokens no MySQL:
• id, token (único), ativo (boolean)
• limite_req_minuto, limite_req_hora, limite_req_dia, limite_req_mes (0 = ilimitado)
• data_criacao, data_expiracao
Tabela rate_limiting:
• Persistir contadores de requisições no BD (sobreviver a reinicializações)
• Campos: token_id, contador_minuto/hora/dia/mês, timestamps de reset
Validação:
• Verificar token ativo e não expirado
• Validar todos os limites antes de processar qualquer requisição

2. Endpoint Principal: POST /consultar
JSON de Entrada:
{
"token": "abc123xyz",
"processos": [
{
"numero": "4001323-38.2025.8.26.0505",
"tipo": "primeiroGrau"
}
]
}
Tipos válidos: "primeiroGrau", "tribunalDeJustica", "turmasRecursais"
Regra Crítica de Validação:
Se o número de processos no array exceder o limite disponível do token, a API deve:
• Retornar erro 429
• NÃO processar nenhum processo
• Informar limite configurado e limite disponível

JSON de Saída (dados estruturados):
{
"sucesso": true,
"processos": [
{
"numero": "...",
"tipo": "...",
"dados_estruturados": {
"eventos": [...],
"partes": [...],
"movimentacoes": [...],
"documentos": [...]
}
}
]
}

3. Lógica de Web Scraping
URL Alvo: https://eproc-consulta.tjsp.jus.br/consulta_1g/externo_controlador.php?acao=tjsp@consulta_unificada_publica/consultar
Fluxo por Processo:
1. Acessar página de consulta unificada
2. Selecionar no dropdown o tipo correspondente (1º Grau, Tribunal de Justiça ou Turmas Recursais)
3. Inserir número do processo e submeter
4. Na página de resultado, localizar e clicar no link "Clique aqui para listar todos os eventos"
5. Raspar TODAS as informações da página que abrir
6. Tratamento de links encontrados:
• Link para outro processo: retornar apenas a URL
• Link para documento: abrir nova página, extrair texto completo e retornar conteúdo
Observação: Se o link "listar todos os eventos" não existir, fazer raspagem na página de resultado primário.

Bypass Cloudflare Turnstile:
• Usar Pydoll para bypass automático
• Implementar retry logic (3 tentativas)
• Configurar suporte para SmartProxy via variável de ambiente USAR_PROXY
• Credenciais do proxy serão fornecidas pelo cliente posteriormente

4. Códigos de Resposta HTTP:
• 200: Sucesso
• 401: Token inválido/expirado
• 429: Limite excedido (informar limite e disponível)
• 404: Processo não encontrado
• 503: Turnstile bloqueou ou site indisponível
• 500: Erro interno

5. Entregáveis Obrigatórios:
1. Código-fonte Python organizado e comentado
2. Dockerfile otimizado
3. docker-compose.yml (FastAPI + MySQL + Redis opcional)
4. requirements.txt
5. .env.example com variáveis: MySQL, proxy SmartProxy, flags de configuração
6. Scripts SQL para criação de tabelas
7. README.md detalhado com instruções de instalação e uso
8. Documentação Swagger automática do FastAPI

6. Logging:
Implementar logs estruturados registrando:
• Requisições recebidas (token, timestamp, quantidade)
• Validações de rate limiting
• Erros de scraping e bloqueios
• Tempo de processamento

7. Ambiente e Deployment:
• VPS próprio do cliente
• Cliente gerencia tokens via phpMyAdmin
• Freelancer entrega código e documentação (não faz deploy)

8. Não Inclui:
• Testes automatizados
• Deploy da aplicação
• Endpoints administrativos
• Interface gráfica

9. Performance:
Suportar até 20 requisições por minuto com estabilidade e confiabilidade.

Habilidades desejadas:

Desenvolvimento de API Python Web Scraping

Arquivos anexados:

Entre ou Cadastre-se para ver os arquivos anexados.

Atividades do cliente nesse projeto:

Última visualização: hoje às 17:30

Tem dúvidas? Faça uma pergunta.

ou

Enviar proposta

Informações adicionais

Categoria: Web, Mobile & Software
Subcategoria: Outra - Web, Mobile & Software
Orçamento: Aberto
Nível de experiência: Intermediário
Visibilidade: Público
Propostas: 5
Interessados: 7
Tempo restante:
Valor Mínimo: R$ 50,00
Propostas (5)
  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer Pro Luiz F.
    Top Freelancer Plus
    Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

Nenhuma proposta foi encontrada.

Carregando...
Projetos semelhantes no 99Freelas

Engenharia reversa de cliente de jogo - Preciso de um profissional que consiga extrair um cliente de um jogo em formato NFS (MMORPG). O jogo não existe mais online, e eu tenho acesso aos arquivos. Porém, não consigo ...

Integração via n8n com APIs da PlugStorage - Estou buscando um freelancer especializado em n8n, integrações com APIs REST, autenticação via token e automações de coleta de dados. O objetivo do projet...

Automação de broadcast para ChatPion - Preciso de um sistema ou alguma forma de automatizar envios de broadcast através do ChatPion. Pensei em criar uma planilha para inserir os dados, como imagem, título, copy dos bot&oti...

Criar bot de vendas para Telegram integrado com AbacatePay - O projeto consiste em criar um sistema de SaaS para vendas automáticas usando o Telegram, com a plataforma AbacatePay como base. Primeiro, precisamos configurar um painel de vendas (dashboa...

Desenvolvimento de solução WhatsApp Business API + IA para contact center - Tenho um contact center de cobranças e enfrento um problema recorrente: bloqueios de números do WhatsApp ao realizar comunicações em escala, mesmo com boas prátic...

Carregando...

Carregando...

Pesquisar

FREELANCERS
PROJETOS
Ocorreu um erro inesperado. Caso o erro persista, entre em contato conosco através do e-mail suporte@99freelas.com.br.