3 pontos por kingtw 4 시간 전 | Ainda não há comentários. | Compartilhar no WhatsApp

Um sistema de coleta self-hosted que coleta dados usando a sessão real do navegador do usuário, enquanto o que coletar e como coletar é publicado dinamicamente pelo servidor em tempo de execução. Um padrão Command-Execute-Report (Comando-Executar-Reportar) em que o servidor controla remotamente o cliente (navegador).

Resolve por arquitetura três problemas recorrentes ao criar um novo crawler — carga/bloqueio no backend de destino, barreira de login e redistribuição do cliente sempre que a lógica de coleta muda.

  • Zero-Footprint: em vez de enviar requisições diretamente ao servidor de destino, o navegador do usuário já autenticado faz a coleta → acessa até mesmo atrás da barreira de login da mesma forma que uma pessoa e evita carga no backend e bloqueios.
  • Controle dinâmico pelo servidor: o bookmarklet, depois de registrado uma vez, permanece imutável para sempre. As regras de coleta (seletores, ações, extração) são publicadas pelo servidor como comandos tipados → 0 redistribuição do cliente quando a lógica muda. Geração automática de tipos TS a partir de uma única fonte em Pydantic.
  • Criação de receitas por clique: ao clicar em elementos na WebUI, seletores são gerados automaticamente, e sequências de ação (click·drag·scroll·swipe) → receitas de extração são salvas. script eval proibido (whitelist).
  • Carga sem perda: write-ahead (commit síncrono antes do 202) + idempotência + recuperação automática ao reiniciar.
  • Controle por agente MCP: expõe o pipeline ao vivo como ferramenta MCP (host allowlist·rate-limit·guardas de TTL por operação). Porém, evasão de bots e scraping em massa não são objetivos.
  • secure-by-default: autenticação administrativa ativada por padrão (token automático no estilo Jupyter), limites para execução de eval(script) em respostas do servidor e de beacon externo (beacon), sem uso de fingerprinting.
  • Sem custo e portátil: SQLite + fila em memória + um único FastAPI. 0 serviços pagos externos. Reprodutível em qualquer SO com uv. MIT.

Para coletar sites públicos, é necessária uma URL pública por causa das restrições de Private Network Access do navegador; isso é contornado iniciando um túnel temporário do cloudflared com ENABLE_TUNNEL=1 (medição real: coleta bem-sucedida em sites de notícias reais).

Ainda não há comentários.

Ainda não há comentários.