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.
Grundlegende Syntax
Abschnitt betitelt „Grundlegende Syntax“Ü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:
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"}Ausgabetypen
Abschnitt betitelt „Ausgabetypen“output | Ergebnis | Beispiel |
|---|---|---|
text | Textinhalt des Elements | "Example Domain" |
html | Inneres HTML | "<strong>Example</strong> Domain" |
@<attr> | Attributwert | "@href" → "https://example.com/" |
Mehrere Felder
Abschnitt betitelt „Mehrere Felder“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" } ]}JSON-Auto-Parser
Abschnitt betitelt „JSON-Auto-Parser“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:
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
nullzurückgegeben, statt die Anfrage fehlschlagen zu lassen.
- Sitzungen & Proxys, Scraping über paginierte Abläufe.
- Erweitert, Header, Cookies, POST-Bodys.