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.
Sintaxis básica
Sección titulada «Sintaxis básica»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:
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"}Tipos de salida
Sección titulada «Tipos de salida»output | Devuelve | Ejemplo |
|---|---|---|
text | Contenido de texto del elemento | "Example Domain" |
html | HTML interno | "<strong>Example</strong> Domain" |
@<attr> | Valor del atributo | "@href" → "https://example.com/" |
Múltiples campos
Sección titulada «Múltiples campos»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" } ]}Autoparser de JSON
Sección titulada «Autoparser de JSON»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:
curl "https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=https://api.example.com/products&auto_parser=1"Consejos
Sección titulada «Consejos»- 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
nullen lugar de fallar la solicitud.
Siguiente
Sección titulada «Siguiente»- Sesiones y proxies, scraping en flujos paginados.
- Avanzado, cabeceras, cookies, cuerpos POST.