Skrapr
Uma ferramenta inteligente de web scraping que usa IA e automação de navegador para extrair dados estruturados de sites.
Documentação
Skrapr - Servidor MCP
🎉 Versão em nuvem disponível! Preencha este formulário para obter acesso.
Skrapr é uma ferramenta inteligente de raspagem web que combina capacidades de IA com automação de navegador para extrair dados estruturados de sites.
Em resumo:
url do site + esquema JSON = dados estruturados do site
Esta ferramenta é uma alternativa entre ferramentas de requisição HTTP (despejo) e ferramentas de raspagem (força bruta).
Como funciona
flowchart LR
agent["Your AI Agent"] l1@--> | scrape_with_schema | skrapr["Skrapr"]
subgraph server [Skrapr MCP Server]
skrapr l2@--> | use tool | playwright["Playwright MCP"]
end
playwright l3@--> |navigates| website["Website"]
skrapr l4@--> | think with | openai["Azure OpenAI"]
skrapr l5@-.-> | json data | agent
classDef customer stroke:#00f, stroke-width: 2
classDef external stroke:#63af3e,stroke-width: 2,stroke-dasharray: 4
classDef group fill:#ffffa455, stroke:#ff7c7c, stroke-width: 2
agent:::customer
agent:::someclass
website:::external
openai:::external
server:::group
classDef animate stroke-dasharray: 20,stroke-dashoffset: 900,animation: dash 25s linear infinite;
class l1 animate
l2@{ animate: true }
l3@{ animate: true }
l4@{ animate: true }
l5@{ animate: true }
Ferramentas disponíveis
- scrape_with_schema :
- Título: Extrair dados de um site com base em um esquema JSON
- Descrição: Navegar e raspar o site fornecido para extrair dados que correspondam à estrutura do Esquema JSON fornecido.
- Parâmetros:
- url: A URL do site do qual extrair dados.
- jsonSchema: O Esquema JSON que descreve a estrutura de dados a ser extraída.
- instruction: Instruções opcionais para orientar como a raspagem deve ser realizada.
- Somente leitura: true
Exemplo
Uma vez configurado, você pode usar as capacidades do Skrapr diretamente em qualquer cliente MCP (Claude Desktop, n8n, librechat, ...).
Por exemplo, você pode pedir ao Claude:
Extraia informações de produtos de todas as categorias em https://example.com/products.
Quero nome, descrição e preço de cada produto.
O modelo criará um esquema semelhante e o passará ao Skrapr:
{
"type":"object",
"properties":{
"products":{
"type":"array",
"items":{
"type":"object",
"properties":{
"name":{
"type":"string"
},
"price":{
"type":"string"
},
"description":{
"type":"string"
}
}
}
}
}
}
O Skrapr navegará pelo site, página por página, até encontrar todos os dados necessários.
Após a raspagem, você receberá a seguinte resposta:
{
"products": [
{
"name": "Product 1",
"price": "10",
"description": "Description of product 1"
},
{
"name": "Product 2",
"price": "20",
"description": "Description of product 2"
}
]
}
Começando com o Host MCP
Para uma integração típica com Host MCP (Claude Desktop), veja como configurar:
Com .NET:
{
"mcpServers": {
"skrapr": {
"command": "dotnet",
"args": [
"run",
"--project",
"path/to/Skrapr/Skrapr.csproj"
"-e", "AzureOpenAi__ApiKey=your-api-key",
"-e", "AzureOpenAi__Endpoint=https://your-resource.openai.azure.com/",
"-e", "AzureOpenAi__DeploymentName=your-deployment-name",
"-e", "PlaywrightMcp__IsLocal=true",
]
}
}
}
Com Docker:
-
Construa a imagem Docker:
docker build -t skrapr . -
Execute o contêiner:
docker run \ -p 80:80 \ -e AzureOpenAi__ApiKey=your-api-key \ -e AzureOpenAi__Endpoint=https://your-resource.openai.azure.com/ \ -e AzureOpenAi__DeploymentName=your-deployment-name \ -e PlaywrightMcp__IsLocal=true \ skrapr -
O servidor MCP estará disponível em
http://localhost:5000. -
Você pode configurar seu Host MCP
{ "mcpServers": { "skrapr": { "url": "http://localhost:5000/sse" } } }
Com a versão em nuvem
Estou hospedando uma instância do Skrapr na nuvem com tudo configurado.
Se você tiver interesse em experimentar, fale comigo aqui para obter acesso à versão beta.
{
"mcpServers": {
"skrapr": {
"url": "https://[ask-for-url]/sse"
}
}
}
Configuração do Playwright
O Playwright pode ser executado localmente ou remotamente.
Local
Definir a variável de ambiente PlaywrightMcp__IsLocal=true fará o Playwright executar localmente.
Você precisa ter o Node.js instalado para que funcione.
Ele usa npx @playwright/mcp para executar o Playwright.
Remoto
Definir a variável de ambiente PlaywrightMcp__Endpoint usará o Playwright em um host remoto.
Por baixo dos panos?
Agente de IA
O Skrapr usa internamente um agente de IA com o objetivo de:
- Entender a estrutura e o conteúdo do site
- Navegar autonomamente pelo site
- Tomar decisões estratégicas de navegação para localizar as informações solicitadas
- Produzir um resultado JSON estruturado com base em um esquema JSON fornecido.
Pilha técnica
Ele usa:
- Semantic Kernel da Microsoft para construir o agente
- Playwright MCP para expor ferramentas de navegação em sites
- Azure OpenAI para capacidades de IA e extração de dados de acordo com esquemas JSON definidos pelo usuário
Graças ao MCP (Model Context Protocol), você pode conectar o Skrapr a qualquer agente, independentemente da linguagem.
Por que o Skrapr?
Ao construir um Agente de IA, você pode querer que o agente extraia facilmente informações de sites.
Atualmente, os modelos de IA não conseguem navegar em sites nativamente.
Ferramentas simples de requisição HTTP existem, porém há algumas limitações:
- Sem execução de JavaScript: não conseguem ler conteúdo dinâmico
- As informações podem não estar presentes na página carregada, mas em uma subpágina
Ferramentas de raspagem também existem, mas elas:
- Carregam informações demais (raspagem aleatória)
- Levam muito tempo para raspar