Zum Inhalt springen
Anmelden Registrieren

Extraktionsregeln

Verzichten Sie auf BeautifulSoup, Cheerio und reguläre Ausdrücke. Teilen Sie Shifter mit, welche CSS-Selektoren welchen JSON-Feldern entsprechen, und erhalten Sie sauberes JSON zurück.

Übergeben Sie extract_rules als URL-codiertes JSON-Objekt, wobei jeder Schlüssel ein Ausgabefeld ist und jeder Wert beschreibt, wie es extrahiert wird.

Minimalbeispiel:

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

URL-codiert und gesendet:

Terminal-Fenster
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"}
outputErgebnisBeispiel
textTextinhalt des Elements"Example Domain"
htmlInneres HTML"<strong>Example</strong> Domain"
@<attr>Attributwert"@href""https://example.com/"

Fügen Sie dem Regel-Objekt weitere Schlüssel hinzu:

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

Antwort:

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

Für Listen (Suchergebnisse, Produktkarten, Tabellenzeilen) verpacken Sie die Regel in ein übergeordnetes Objekt, das type: "list" und item angibt:

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

Antwort:

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

Für Endpunkte, die bereits JSON zurückgeben (die meisten REST-APIs), fügen Sie auto_parser=1 hinzu, um den Body zu parsen und unverändert zurückzugeben:

Terminal-Fenster
curl "https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=https://api.example.com/products&auto_parser=1"
  • Testen Sie Selektoren zunächst mit der Browser-Entwicklerkonsole: document.querySelector(...).
  • Codieren Sie das URL-codierte JSON korrekt. Die meisten HTTP-Clients erledigen dies automatisch, wenn Sie die Regeln als Parameterobjekt übergeben.
  • Fehlt ein Feld auf der Seite, wird null zurückgegeben, statt die Anfrage fehlschlagen zu lassen.