--- name: Sindicância scrapers 2026-05-11 + AA esgotamento description: Smoke test 10 scrapers, pm2 status, causas-raiz GOL/Delta, AA monitor 24/7, tudo tentado vs Akamai 2.0 type: project originSessionId: c1338a0f-ba13-4e7c-92ae-b4bba3223bcf --- # Sindicância completa 2026-05-11 ## Smoke test 10 scrapers (rota GRU-MIA, data fresh 2026-08-10/22, sem cache) | Airline | success | voos | tempo | estado | |---|---|---|---|---| | **Livelo** | true | **110** | 91s | ✅ OK | | **Smiles** | true | **24** | 27s | ✅ OK | | **AA aadvantage** | (vazio) | 0 | 90s timeout | ❌ Akamai 2.0 | | **GOL** | (vazio) | 0 | 79s+260s timeout | ❌ Backend mudou | | **Delta** | (vazio) | 0 | timeout | ❌ Date picker quebrado | | **TAP** | true | 0 | - | ⚠️ talvez correto (TAP não voa GRU-MIA direto) | | **Azul TudoAzul** | true | 0 | - | ⚠️ verificar rota | | **Azul TripStack** | true | 0 | - | ⚠️ verificar rota | | **LATAM Money** | true | 0 | - | ⚠️ provável bug (LATAM voa GRU-MIA) | | **LATAM Pass** | true | 0 | - | ⚠️ idem | ## PM2 (root) — restarts altos = scraper instável - scraper-american-aadvantage id 1 → **207 restarts em 2D** - scraper-smiles-gol id 14 → **234 restarts em 6D** - scraper-gol id 31 → 91 restarts em 6D - scraper-delta-skymiles id 4 → 82 restarts em 6D - scraper-azul-pelomundo id 27 → 81 restarts em 10D - scraper-azul-tripstack id 30 → 88 restarts em 6D Servidor scraper: 173.208.187.154 (Tailscale: 100.126.1.5). SSH `customer/CRBtGb5ftDeZ`, sudo CRBtGb5ftDeZ. Gateway api-gateway id 52, akamai-solver id 39. ## GOL — causa raiz ``` [GOL] Angular nao respondeu. Fallback: BFF direto... [GOL] BFF tentativa 1: status=406 len=148 [GOL] BFF tentativa 2: status=406 len=148 [GOL] BFF tentativa 3: status=406 len=148 [GOL] 0 voos [DIRETO] ``` GOL backend mudou — Angular `/flights/search` timeout 40s + BFF retorna **406 Not Acceptable** (provável Cloudflare ou validação nova de header). gol-solver VM (porta 9092) parou de bypassar. Path: `/opt/skymilhas/scrapers/gol/service.js` (id 31, pid 2161545). ## Delta — causa raiz ``` [Delta] Date click: IDA: nav failed (current=September 2026) [Delta] Click #findFilghtsCta: Node is either not clickable or not an E [Delta] Click button#findFilghtsCta: Node is either not clickable or not an E ... 5 selectors falham [Delta] Fallback click: #findFilghtsCta [Delta] URL pos-click FULL: https://www.delta.com/flightsearch/book-a-flight?... [Delta] Aguardando API response... ``` Date picker não navega de Setembro 2026 pra Agosto 2026. Botão "Find Flights" não-clicável (vários selectors falham). Mesmo problema da memória 2026-04-20 ("date-picker não navega meses — pendente"). Path: `/opt/skymilhas/scrapers/delta/service.js` (id 4). ## AA — esgotamento completo Tudo tentado nesta sessão: - Patch user_data_dir Camoufox-js (mantido em adv-22) — Akamai challenge - Scrapling 3 modos (Fetcher TLS, StealthyFetcher, StealthySession) — Akamai challenge - Curl direto da VM — 403 Access Denied EdgeSuite - Cloudflare WARP (3 IPs Cloudflare) — 403 (range 104.28/16 banido) - Tor exit (192.42.116.142) — 403 - **5184 proxies free** (HTTP + SOCKS5) — **0 passaram** - Subdomínios alternativos (aaflightservice, aapilots, aamaintweb) — abrem só primeira request, depois Akamai blacklista IP - Endpoints API mobile (`api.aa.com`) — 405 universal, exige `x-api-key` desconhecida CAPTCHA Akamai do PC do Jesiel: erro JS no `adaptive_verify` impede passar mesmo com Chrome real. URL `akamai-challenge-resubmit=true`. Único caminho conhecido restante: - Tailscale exit node celular (Jesiel recusa ativar agora) - Cookies frescos do Chrome real do Jesiel via bookmarklet (não consegue passar CAPTCHA) - Reverse engineer app AA + extrair x-api-key (não autorizado nesta sessão) - CapSolver/Hyper Solutions pago (regra "sem gastos extras") ## Monitor AA 24/7 instalado em adv-22 Script: `/usr/local/bin/aa-monitor.sh` Cron: `*/30 * * * *` (a cada 30min) Log: `/var/log/aa-monitor/aa.log` State: `/var/log/aa-monitor/state.json` Testa cada 30min com **data aleatória 90-180 dias futuro** (garante cache miss). Detecta `blocked → unblocked` na transição e dispara notify via webhook (opcional, env `AA_MONTOR_NOTIFY_URL`). Última check: blocked=true (home=403, aafs=401, gw=false, voos=0). ## Patch user_data_dir adv-22 (mantido) `/opt/aa-solver/aa-solver.mjs` agora usa `Camoufox({user_data_dir: '/opt/aa-solver/camoufox-profile', ...})` — cookies Akamai persistem entre rotações de browser. Profile dir 14MB+. OS fixo `windows` via env `AA_SOLVER_OS`. Backup `/opt/aa-solver/aa-solver.mjs.bak-pre-userdatadir-1778504337`. Quando Akamai relaxar OU cookies frescos chegarem, scraper já está pronto — só recebe via `/set-cookies` e dispara busca. ## adv-23 INTOCADA Não recebeu patch user_data_dir (Tailscale SSH gate). Não recebeu Scrapling. Não recebeu WARP/Tor. Mantém setup anterior da memória 2026-05-08. ## Próximos passos sugeridos (próxima sessão) 1. **GOL**: investigar mudança Cloudflare 406, recriar bypass (ou esperar relaxar) 2. **Delta**: corrigir date picker — usar query string URL direta `?date=YYYY-MM-DD` em vez de clicar no picker 3. **AA**: aguardar Akamai relaxar (monitor avisa) OU usuário ativar exit node celular OU reverse engineer app 4. **TAP/Azul/LATAM**: validar manualmente se rota GRU-MIA realmente tem 0 voos nesses programas — se sim, scrapers OK; se não, debugar 5. **Scrapling-poc**: removível em `/opt/scrapling-poc/` se não for usar mais