Ir al contenido
Iniciar sesión Registrarse

Reglas de extracción

Olvídate de BeautifulSoup, Cheerio y las expresiones regulares. Indica a Shifter qué selectores CSS se corresponden con qué campos JSON, y recibe JSON limpio a cambio.

Pasa extract_rules como un objeto JSON codificado en URL donde cada clave es un campo de salida y cada valor describe cómo extraerlo.

Ejemplo mínimo:

{
"title": { "selector": "h1", "output": "text" }
}

Codificado en URL y enviado:

Ventana de terminal
curl "https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=https://example.com&extract_rules=%7B%22title%22%3A%7B%22selector%22%3A%22h1%22%2C%22output%22%3A%22text%22%7D%7D"
# {"title": "Example Domain"}
outputDevuelveEjemplo
textContenido de texto del elemento"Example Domain"
htmlHTML interno"<strong>Example</strong> Domain"
@<attr>Valor del atributo"@href""https://example.com/"

Añade claves al objeto de reglas:

{
"title": { "selector": "h1", "output": "text" },
"description": { "selector": "meta[name=description]", "output": "@content" },
"canonical": { "selector": "link[rel=canonical]", "output": "@href" }
}

Respuesta:

{
"title": "Example Domain",
"description": "The example domain...",
"canonical": "https://example.com/"
}

Para listas (resultados de búsqueda, fichas de producto, filas de tabla), envuelve la regla en un elemento padre que especifique type: "list" e item:

{
"products": {
"selector": "div.product",
"type": "list",
"item": {
"name": { "selector": "h2", "output": "text" },
"price": { "selector": ".price", "output": "text" },
"link": { "selector": "a.title", "output": "@href" }
}
}
}

Respuesta:

{
"products": [
{ "name": "Item A", "price": "$19.99", "link": "/item-a" },
{ "name": "Item B", "price": "$24.50", "link": "/item-b" }
]
}

Para endpoints que ya devuelven JSON (la mayoría de las API REST), añade auto_parser=1 para analizar el cuerpo y devolverlo tal cual:

Ventana de terminal
curl "https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=https://api.example.com/products&auto_parser=1"
  • Prueba los selectores primero con la consola de desarrollador del navegador: document.querySelector(...).
  • Codifica correctamente el JSON en URL. La mayoría de los clientes HTTP lo hacen automáticamente cuando pasas las reglas como un objeto de parámetros.
  • Si un campo no está presente en la página, se devuelve null en lugar de fallar la solicitud.