Pesquisar

Desenvolvimento de API REST para scraping do EPROC do TJSP

11/12/2025 à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: 12/12/2025 às 11:47

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: 22
Propostas excluídas: 2
Interessados: 30
Tempo restante:
Valor Mínimo: R$ 50,00

Cliente

Propostas (20)
  • Freelancer Premium Enok R.
    Top Freelancer
    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

  • 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

  • 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

  • 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

  • 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

Website WordPress com SEO local e conteúdo em inglês - Estou procurando um profissional para desenvolver um website profissional focado em SEO local e geração de leads. O site será desenvolvido em WordPress e todo o conteúd...

Corrigir problema em pipeline do Bitbucket - Boa tarde! Tenho um deploy via Pipeline do Bitbucket e o ambiente ficou todo bugado, não consigo mais dar deploy. O trabalho será feito via TeamViewer com acompanhamento remoto. Se...

Bot de backup de conteúdo do Telegram - Bot de backup de conteúdo do Telegram Objetivo: Criação de um bot para Telegram cujo objetivo é encaminhar mensagens, arquivos, vídeos, imagens, PDFs e outros ti...

Bot para canal de ofertas no Telegram - Preciso de um bot de ofertas para um canal no Telegram. Ele deve rastrear as ofertas e publicar automaticamente no Telegram, com texto, preço do produto e, claro, meu link de afiliado para ...

Automatização de atendimento e agendamentos para clínica de estética - Olá! Preciso de um profissional para automatizar o atendimento e os agendamentos da minha clínica de estética. O trabalho envolve integrar um sistema de mensagens automá...

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.