Expert in PJE (Processo Judicial Eletrônico) automation and web scraping for Brazilian electronic legal process systems. Handles tribunal-specific flows, API integration, and data extraction patterns.
This skill provides specialized knowledge for automating PJE (Processo Judicial Eletrônico) legal process scraping across Brazilian tribunals (TRTs, TJs, etc.).
O sistema usa executores TypeScript que executam scraping localmente:
PuppeteerPJEExecutor: Execução via Puppeteer (Chrome/Chromium) - mais rápido, ideal para desenvolvimento
lib/services/pje/puppeteer-executor.tspuppeteer-extra-plugin-stealthPlaywrightPJEExecutor: Execução via Playwright (Firefox/WebKit/Chromium) - mais stealth, recomendado para produção
lib/services/pje/playwright-executor.tsExecutorFactory: Seleção automática do executor baseado em configuração
lib/services/pje/executor-factory.tscreatePJEExecutor(browser?: 'chrome' | 'firefox' | 'webkit')Localização: lib/services/pje/auth-helpers.ts
Funções principais:
aplicarConfiguracoesAntiDeteccao(page) - Remove propriedades webdriver e configura navigatorprocessOTP(page, twofauthConfig, logCallback, targetHost) - Processa OTP via 2FAuth APIesperarSaidaSSO(page, targetHost, timeout, logCallback) - Aguarda redirects SSO até chegar no domínio PJEobterIdAdvogado(page, idAdvogadoFallback, logCallback) - Extrai ID do advogado do JWT cookieAPI Route: app/api/scrape-pje/route.ts
Endpoint: POST /api/scrape-pje
Request Body:
{
credentials: {
cpf: string;
senha: string;
idAdvogado?: string;
};
tribunal: {
codigo: string;
loginUrl: string;
baseUrl: string;
apiUrl: string;
};
scrapeType: 'acervo' | 'expedientes' | 'pauta';
browser?: 'chrome' | 'firefox' | 'webkit';
}
Cada tribunal suporta estes tipos principais de scraping:
/api/scrape-pje com credenciais e configuração do tribunalcreatePJEExecutor(browser)execute(context) inicia browser e aplica configurações anti-detecçãoprocessOTP() busca código do 2FAuth e preencheesperarSaidaSSO() aguarda chegar no domínio PJEobterIdAdvogado() extrai ID do JWT cookie# Browser padrão ('chrome', 'firefox', 'webkit')
DEFAULT_BROWSER=firefox
# Modo headless (true/false)
HEADLESS=true
# Timeout padrão (segundos)
SCRAPING_TIMEOUT=600
# Capturar screenshot em erro
SCREENSHOT_ON_ERROR=true
# 2FAuth (OTP)
TWOFAUTH_API_URL=https://authenticator.platform.synthropic.app
TWOFAUTH_API_TOKEN=<JWT_TOKEN>
TWOFAUTH_ACCOUNT_ID=7
Reference: docs/scraping/ANTI-BOT-DETECTION.md
aplicarConfiguracoesAntiDeteccao()navigator.webdrivernavigator.plugins e navigator.languagesSolution: Increase timeout or wait for specific elements
// Configurado via SCRAPING_TIMEOUT (default: 600s)
Solution: Verificar se fluxo de login completou até authenticateSSO.seam
docs/scraping/TROUBLESHOOTING.mdSolution: Verificar configuração 2FAuth
TWOFAUTH_API_URL, TWOFAUTH_API_TOKEN, TWOFAUTH_ACCOUNT_IDcurl -H "Authorization: Bearer $TWOFAUTH_API_TOKEN" "$TWOFAUTH_API_URL/twofaccounts/7/otp"Solution: Usar Firefox ao invés de Chrome (menos detectável)
{
browser: 'firefox', // Mais stealth que Chrome
timeout: 600000
}
Use this skill when:
docs/scraping/README.md - Visão geral do sistema de scrapingdocs/scraping/ARQUITETURA.md - Arquitetura detalhadadocs/scraping/APIs-PJE.md - Referência de APIs PJEdocs/scraping/ANTI-BOT-DETECTION.md - Técnicas anti-detecçãodocs/scraping/TROUBLESHOOTING.md - Guia de troubleshootinglib/services/pje/executor-factory.ts - Factory de executoreslib/services/pje/auth-helpers.ts - Helpers de autenticação