CrawlForge MCP
Herramienta estructurada2 credits

scrape_structured

Extraiga datos estructurados de cualquier página web usando selectores CSS personalizados. Ideal para el scraping de productos de comercio electrónico, la agregación de noticias y cualquier necesidad de extracción de datos personalizada.

Casos de uso

Scraping de productos de comercio electrónico

Extraiga títulos, precios, descripciones e imágenes de productos de tiendas en línea

Extracción de artículos de noticias

Extraiga titulares, autores, fechas y contenido de sitios de noticias

Transformación de datos personalizada

Asigne cualquier estructura HTML al esquema JSON que desee

Anuncios inmobiliarios

Extraiga detalles de propiedades, precios e imágenes de sitios de anuncios

Endpoint

POST/api/v1/tools/scrape_structured
Auth Required
1 req/s en el plan Free
2 credits

Parameters

NameTypeRequiredDefaultDescription
url
stringOptional-
Página que se descargará para extraer datos. Se requiere `url` o `html`.
Example: https://example.com/product
html
stringOptional-
HTML sin procesar que se analizará en lugar de descargar. Combínelo con `base_url` para resolver valores de atributos relativos.
Example: <html>...</html>
selectors
objectRequired-
Asocia sus nombres de campo a selectores CSS. Se requiere al menos una entrada: los nombres de campo son suyos y vuelven sin cambios en el resultado.
Example: {"title": "h1.product-title", "price": ".price", "description": ".product-desc"}
base_url
stringOptional-
Base para resolver las URL relativas encontradas en los atributos extraídos.
Example: https://example.com
multiple
booleanOptionalfalse
Cuando es true, extrae una lista de elementos repetidos en lugar de un único registro. Cambia la forma de la respuesta; vea más abajo.
Example: true
clean_text
booleanOptionaltrue
Colapsa los espacios en blanco y recorta el texto extraído.
Example: true
include_attributes
arrayOptional-
Captura además estos atributos HTML de cada elemento coincidente, no solo su texto.
Example: ["href", "src", "alt"]
max_items
numberOptional100
Número máximo de elementos devueltos cuando `multiple` es true, 1-1000.
Example: 100
respect_robots
booleanOptionaltrue
Respeta el robots.txt del sitio de destino. Con el valor `true`, una ruta que robots.txt no permita a `CrawlForge` se rechaza con un 403 antes de descargar nada y no se cobran credits. Póngalo en `false` solo para destinos con los que tenga su propio acuerdo: la respuesta incluye entonces una entrada `warnings` y la anulación queda registrada en su API key.
Example: true

Selectores CSS:

Use cualquier sintaxis de selector CSS válida. Patrones comunes:

  • .className - Seleccionar por clase
  • #id - Seleccionar por ID
  • tag.class - Combinar etiqueta y clase
  • .parent > .child - Hijo directo
  • [data-id="value"] - Selector de atributo

Ejemplos de solicitud

cURL - Producto de comercio electrónico

terminalBash
curl -X POST https://crawlforge.dev/api/v1/tools/scrape_structured \
  -H "X-API-Key: cf_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/product/123",
    "selectors": {
      "title": "h1.product-title",
      "price": ".price-value",
      "currency": ".price-currency",
      "description": ".product-description",
      "image": "img.main-image",
      "rating": ".rating-value",
      "availability": ".stock-status"
    }
  }'

TypeScript - Artículo de noticias

scrapeStructured.tsTypescript
const response = await fetch('https://crawlforge.dev/api/v1/tools/scrape_structured', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.CRAWLFORGE_API_KEY!,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    url: 'https://example.com/news/article-123',
    selectors: {
      headline: 'h1.article-title',
      author: '.author-name',
      publishDate: 'time.publish-date',
      category: '.category-tag',
      content: '.article-body',
      image: '.article-image img'
    }
  }),
});

const data = await response.json();

if (data.success) {
  const article = data.data;
  console.log(`Article: ${article.headline}`);
  console.log(`By: ${article.author}`);
  console.log(`Published: ${article.publishDate}`);
}

Python - Anuncio inmobiliario

scrape_structured.pyPython
import requests
import os

response = requests.post(
    'https://crawlforge.dev/api/v1/tools/scrape_structured',
    headers={
        'X-API-Key': os.environ['CRAWLFORGE_API_KEY'],
        'Content-Type': 'application/json',
    },
    json={
        'url': 'https://example.com/property/456',
        'selectors': {
            'address': '.property-address',
            'price': '.listing-price',
            'bedrooms': '.bed-count',
            'bathrooms': '.bath-count',
            'sqft': '.square-feet',
            'description': '.property-description',
            'images': '.gallery img'
        }
    }
)

data = response.json()

if data['success']:
    property_data = data['data']
    print(f"Property: {property_data['address']}")
    print(f"Price: {property_data['price']}")
    print(f"Beds: {property_data['bedrooms']}")
    print(f"Baths: {property_data['bathrooms']}")

Ejemplo de respuesta

200 OK320ms
{
"success": true,
"data": {
"title": "Premium Wireless Headphones",
"price": "299.99",
"currency": "USD",
"description": "High-quality wireless headphones with active noise cancellation and 30-hour battery life.",
"image": "https://example.com/images/headphones.jpg",
"rating": "4.7",
"availability": "In Stock"
},
"credits_used": 2,
"credits_remaining": 998,
"processing_time": 320
}
Field Descriptions
data.titleExtraído del selector h1.product-title
data.priceExtraído del selector .price-value
data.descriptionExtraído del selector .product-description
credits_usedCredits descontados por esta solicitud (2 por cada scrape)

Manejo de errores

Bloqueado por robots.txt (403 Forbidden)

El robots.txt del sitio de destino no permite esta ruta a CrawlForge. Establezca respect_robots: false para anularlo si tiene su propio acuerdo con el destino: la anulación queda registrada en su API key. La anulación no alcanza a un host incluido en la lista de exclusión permanente de CrawlForge, que se rechaza sea cual sea el valor de respect_robots.

Costo en credits

2 credits
2 credits por solicitud
Cada scrape estructurado cuesta 2 credits, independientemente del número de selectores.

Consejo: Para scrapear varias páginas con la misma estructura, use batch_scrape para una mayor eficiencia.

Herramientas relacionadas

batch_scrape
Scrapee varias URLs de forma concurrente (5 credits)
structured_extract
Extracción asistida por IA sin selectores (3 credits)
¿Listo para extraer datos estructurados? Regístrese gratis y obtenga 1,000 credits.

Pie de página

CrawlForge MCP

Web scraping empresarial para agentes de IA. 29 herramientas MCP especializadas diseñadas para desarrolladores modernos que crean sistemas inteligentes.

Producto

  • Funciones
  • Playground
  • Precios
  • Casos de uso
  • Integraciones
  • Alternativas
  • Registro de cambios

Recursos

  • Primeros pasos
  • Referencia de la API
  • Plantillas
  • Guías
  • Blog
  • Glosario
  • Preguntas frecuentes
  • Mapa del sitio

Desarrolladores

  • Protocolo MCP
  • Claude Desktop
  • Cursor IDE
  • LangChain
  • LlamaIndex

Empresa

  • Acerca de
  • Contacto
  • Privacidad
  • Términos
  • Uso aceptable
  • Cookies

Mantente al día

Recibe las últimas novedades sobre nuevas herramientas y funciones.

Creado con Next.js y el protocolo MCP

© 2025-2026 CrawlForge. Todos los derechos reservados.