ArachneControl – sistema open source de coleta de dados em que o servidor controla remotamente o navegador
(github.com/TaewonyNet)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.
scripteval 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.