Mit Stand 7. Oktober 2026 verfügt Shifter über den größten Pool an aktiven US-IPs, mehr als Oxylabs und Bright Data, und das zu einem Bruchteil der Kosten.Shifter hat jetzt den größten Pool aktiver US-IPs

Benchmarks ansehen

Scraping

So verwenden Sie eine Web Scraping API: Einsteigerfreundliche Schritt-für-Schritt-Anleitung

Von der ersten Anfrage bis zu strukturiertem JSON: eine Schritt-für-Schritt-Anleitung zur Verwendung einer Web Scraping API, mit getestetem Python, Fehlerbehandlung und den Einstellungen, die wichtig sind.

Matt Brown

15. Oktober 2026 · 7 Min. Lesezeit

Eine Web Scraping API übernimmt für Sie die mühsamen Teile beim Sammeln von Webseiten: Sie wählt den Proxy aus, startet bei Bedarf den Browser, wiederholt Fehlschläge und liefert das HTML oder die Daten zurück, nach denen Sie gefragt haben. Sie senden eine Anfrage mit einer URL; der Dienst kümmert sich um alles dazwischen.

Dieser Leitfaden führt Sie von Ihrer ersten Anfrage zu einem kleinen, zuverlässigen Scraper, am Beispiel von Shifters Web Scraping API. Die Schritte und Muster sind bei den meisten Diensten dieser Art gleich. Wenn Sie zunächst den Hintergrund verstehen möchten, was hinter der Anfrage passiert, erklärt unser Artikel wie eine Web Scraping API funktioniert das genauer.

Schritt 1: einen API-Key besorgen

Jede Anfrage wird mit einem API-Key authentifiziert. Öffnen Sie in Shifters Panel Web Scraping API, dann API Keys, und kopieren Sie einen aktiven Key.

Halten Sie den Key aus Ihrem Code heraus. Speichern Sie ihn in einer Umgebungsvariable, damit er niemals in einem Repository oder Screenshot landet:

export SHIFTER_SCRAPER_KEY="your-key-here"

Schritt 2: Ihre erste Anfrage stellen

Die API ist ein einzelner Endpoint, https://scrape.shifter.io/v1. Übergeben Sie Ihren Key und die gewünschte Seite als Query-Parameter:

curl "https://scrape.shifter.io/v1?api_key=$SHIFTER_SCRAPER_KEY&url=https://example.com"

Die Antwort ist das HTML der Seite, abgerufen über die Proxies der API. Mehr braucht eine einfache Anfrage nicht.

Schritt 3: JavaScript-Rendering aktivieren, wenn die Seite es braucht

Viele moderne Websites senden eine nahezu leere Seite und bauen den Inhalt im Browser mit JavaScript auf. Wenn im zurückgegebenen HTML die Daten fehlen, die Sie in Ihrem Browser sehen können, fügen Sie render_js=1 hinzu. Die API lädt die Seite dann in einem Headless-Browser und gibt das gerenderte Ergebnis zurück. Bei Shifter kostet eine gerenderte Anfrage genauso viel wie eine einfache.

Zwei verwandte Einstellungen helfen bei langsamen Seiten:

  • wait_for_css wartet, bis ein bestimmtes Element erscheint, bevor zurückgegeben wird, damit Sie die Seite nicht erhalten, bevor ihre Daten geladen sind.
  • timeout gibt langsamen Websites mehr Zeit.

Rendering ist langsamer als ein einfacher Abruf, verwenden Sie es daher nur für Seiten, die es brauchen. Unser Leitfaden zum Scraping von JavaScript-lastigen Websites erklärt, wie man das erkennt.

Schritt 4: JSON statt HTML erhalten

HTML selbst zu parsen ist die häufigste Fehlerquelle bei Scrapern. Beschreiben Sie stattdessen die gewünschten Felder mit extract_rules: ein JSON-Objekt, das jeden Feldnamen auf einen CSS-Selektor und das abzurufende Ergebnis abbildet.

outputGibt zurück
textDen Text des Elements
htmlDas innere HTML des Elements
@href, @src und so weiterDen Wert eines Attributs

Zum Beispiel liefert {"title": {"selector": "h1", "output": "text"}} für example.com {"title": "Example Domain"}. Viele Seiten betten ihre Daten bereits als strukturiertes JSON ein; unser Leitfaden zum Extrahieren von JSON-LD statt HTML zu parsen zeigt, wie man das nutzt.

Schritt 5: Fehler richtig behandeln

Jeder Scraper trifft auf Fehlschläge: langsame Websites, Seiten, die sich nicht rendern lassen, zu viele gleichzeitige Anfragen. Die API teilt Ihnen über den Statuscode mit, was schiefgelaufen ist, und die richtige Reaktion hängt davon ab, welchen Sie erhalten:

StatusBedeutungWas zu tun ist
200ErfolgAntwort verwenden
400, 401, 403Ein Problem mit Ihrer Anfrage, Ihrem Key oder Ihren Plan-FunktionenBeheben; ein erneuter Versuch hilft nicht
408Die Zielwebsite hat ein Timeout ausgelöstErneut versuchen, eventuell mit höherem timeout
422Die Seite konnte nicht gerendert werdenErneut versuchen; prüfen, ob die Website im normalen Browser funktioniert
429Zu viele gleichzeitige Anfragen für Ihren PlanWarten, dann erneut versuchen
500Ein interner FehlerNach kurzer Verzögerung erneut versuchen

Bei Shifter werden fehlgeschlagene Anfragen nicht berechnet; Sie zahlen ein Credit pro erfolgreicher Antwort. Die API wiederholt intern auch einige Fehlschläge, bevor sie antwortet, und diese zählen als ein Aufruf.

Alles zusammenfügen

Hier ist ein kleiner Python-Helfer, der alle fünf Schritte umschließt: Er liest den Key aus der Umgebung, fügt auf Wunsch Rendering und Extraktion hinzu, wiederholt die Fehler, bei denen sich das lohnt, mit wachsender Pause, und bricht sofort bei denen ab, die eine Korrektur erfordern.

import json
import os
import time

import requests

API = "https://scrape.shifter.io/v1"
RETRY = {408, 422, 429, 500}          # worth another try after a pause
STOP = {400, 401, 403}                # fix the request; retrying will not help


def scrape(url, render_js=False, extract_rules=None, attempts=3, session=None, wait=2.0):
    """Fetch one page through the Web Scraping API; returns text, or parsed JSON with extract_rules."""
    session = session or requests.Session()
    params = {"api_key": os.environ["SHIFTER_SCRAPER_KEY"], "url": url}
    if render_js:
        params["render_js"] = 1
    if extract_rules:
        params["extract_rules"] = json.dumps(extract_rules)
    for attempt in range(1, attempts + 1):
        response = session.get(API, params=params, timeout=120)
        if response.status_code == 200:
            return response.json() if extract_rules else response.text
        if response.status_code in STOP or attempt == attempts or response.status_code not in RETRY:
            raise RuntimeError(f"{url}: HTTP {response.status_code} {response.text[:200]}")
        time.sleep(wait * attempt)    # back off a little more each time

Verwendung:

from scrape_api import scrape

html = scrape("https://example.com")
data = scrape("https://example.com", extract_rules={"title": {"selector": "h1", "output": "text"}})
print(data["title"])

Wir haben den Aufbau der Anfragen, die Wiederholungen und die Abbruchbedingungen des Helfers gegen simulierte Antworten für jeden der oben genannten Statuscodes getestet.

Wenn Ihnen Retry-Logik neu ist, erklärt unser Leitfaden zu Retry und Backoff für Web Scraper, warum die Pause mit jedem Versuch wächst.

Schritt 6: skalieren

Sobald einzelne Anfragen funktionieren, zählen beim Wachsen drei Dinge:

  • Nebenläufigkeit. Senden Sie mehrere Anfragen gleichzeitig mit einem Thread-Pool oder einem asynchronen Client. Jeder Plan hat ein Nebenläufigkeitslimit (20 bis 500 gleichzeitige Anfragen bei Shifter, je nach Plan); bleiben Sie darunter und behandeln Sie 429 als Signal zum Verlangsamen.
  • Standort und Proxy-Typ. Nutzen Sie den Parameter country, um eine Seite so abzurufen, wie sie in einem bestimmten Land erscheint. Ab Growth-Plänen leitet premium_proxy Anfragen über residenzielle IPs für Websites, die Datacenter-Traffic blockieren.
  • Sessions. Für mehrstufige Abläufe hält eine session_id dieselbe IP und Cookies über mehrere Anfragen hinweg bei.

Wenn die Daten zu fließen beginnen, speichern Sie sie an einem Ort, den Sie abfragen können. Unser Leitfaden zum Überführen von Web Scraping API-Daten in SQL beschreibt eine saubere Pipeline von der Antwort bis zur Tabelle.

Häufige Anfängerfehler

  • Den API-Key fest in den Code schreiben. Nutzen Sie eine Umgebungsvariable oder einen Secrets-Manager.
  • Alles rendern. Versuchen Sie zuerst eine einfache Anfrage; rendern Sie nur Seiten, die es brauchen.
  • Alles wiederholen. Ein 401 wird nie erfolgreich sein. Wiederholen Sie nur Fehler, die später erfolgreich sein können.
  • HTML von Hand parsen. Nutzen Sie, wo möglich, Extraktionsregeln oder eingebettetes JSON.
  • Nebenläufigkeitslimits ignorieren. Zu viele parallele Anfragen erzeugen 429-Fehler, keine Geschwindigkeit.

FAQ

Was ist eine Web Scraping API?

Ein Dienst, der für Sie Webseiten über eigene Proxies und Browser abruft, Wiederholungen und Blockaden handhabt und das HTML oder extrahierte Daten als Antwort auf eine einzelne Anfrage zurückgibt.

Muss ich programmieren können, um eine Web Scraping API zu nutzen?

Ein wenig. Eine einzelne Anfrage funktioniert von der Kommandozeile aus mit curl, aber die meisten echten Projekte verwenden ein kurzes Skript in Python oder einer anderen Sprache, um Anfragen zu senden, Fehler zu behandeln und die Ergebnisse zu speichern.

Wann sollte ich JavaScript-Rendering aktivieren?

Wenn im ohne Rendering zurückgegebenen HTML Inhalte fehlen, die Sie in Ihrem Browser sehen können. Viele Websites bauen ihre Seiten mit JavaScript auf, und Rendering gibt die Seite so zurück, wie ein Browser sie anzeigen würde.

Kosten fehlgeschlagene Anfragen Credits?

Bei Shifter nicht. Sie zahlen ein Credit pro erfolgreicher Antwort, und fehlgeschlagene Anfragen, einschließlich Fehlern der Zielwebsite, sind kostenlos.

Fazit

Die Nutzung einer Web Scraping API läuft auf ein paar Gewohnheiten hinaus: den Key in der Umgebung halten, mit einfachen Anfragen beginnen und Rendering nur dort hinzufügen, wo nötig, JSON mit Extraktionsregeln anfordern statt HTML zu parsen, nur die Fehler wiederholen, die später erfolgreich sein können, und das Nebenläufigkeitslimit Ihres Plans respektieren. Der Helfer oben deckt all das in etwa zwanzig Zeilen ab. Pläne und Limits finden Sie auf der Preisseite der Web Scraping API.

Bereit, loszulegen?

Testen Sie Shifters Residential-Proxys, 205M+ IPs, 195+ Länder, ab 0,75 $/GB.

Jetzt starten