Pular para o conteúdo
Pedro Gomes
Todos os trabalhos

AI Web Scraping Agent

Passe uma URL e descreva o que você quer numa frase. Ele devolve JSON validado, e é difícil usá-lo contra o servidor em que roda.

Quem tem este problema

Transformar uma página em dados estruturados é a parte fácil. Rodar isso como serviço público exige impedir que o scraper seja apontado para endereços internos, evitar que instruções escondidas numa página conduzam o modelo e garantir que os resultados em cache de um usuário nunca cheguem a outro.

Meu papel

Aplicação web, API, validação de URL e cache isolado por usuário.

Como experimentar

  1. Abra a demo, cole uma URL e descreva numa frase o que você quer. O resultado volta como JSON validado.

Condições de uso

  • 5 extrações por sessão, 10 requisições por minuto e 5 navegadores ao mesmo tempo.
  • 200 chamadas por dia na chave compartilhada. Com a sua própria chave, esse limite não se aplica.
  • Um interruptor de emergência que corta as chamadas pagas sem novo deploy.

O acesso público tem limites de uso para controlar os custos dos serviços de IA.

Decisões que tomei

  • Cada endereço é conferido antes da requisição, inclusive domínios internacionalizados e IPv6, e conferido de novo para cada recurso que a página carrega, então um domínio que troca o DNS no meio da requisição não consegue chegar a um endereço interno.
  • O conteúdo da página vai para o modelo como dado não confiável, isolado das instruções, então o texto de uma página não consegue dar ordens ao modelo.
  • Use a sua própria chave para 6 provedores (Groq, OpenAI, Anthropic, DeepSeek, Gemini e Grok). A demo pública usa uma chave gratuita compartilhada, com limites por visitante.
  • A chave do cache inclui um hash da chave de API, então resultados em cache nunca são compartilhados entre usuários.
  • O backend fica numa rede Docker interna; só o app web consegue alcançá-lo.

Limites que continuam

  • Páginas que exigem login ficam fora do alcance.