Skip to main content
POST https://api.acedata.cloud/webextrator/render Die WebExtrator Webseitenrendering API ist ein auf Headless Chromium basierender Webseitenrendering-Dienst. Geben Sie eine URL an, um das vollständig gerenderte HTML (einschließlich JS-injizierter Inhalte), reinen Text, den Seitentitel und die endgültige URL zurückzugeben. Render ist die grundlegendste Schnittstelle von WebExtrator. Wenn Sie strukturierte Extraktionsergebnisse (Artikelinhalt, Produktpreise, Rezeptzutaten …) benötigen, verwenden Sie /webextrator/extract — es führt auf derselben Rendering-Basis eine vollständige Typisierungsextraktionspipeline aus.

Antragsprozess

Um den WebExtrator-Dienst zu nutzen, gehen Sie zunächst zur Ace Data Cloud Konsole, um Ihr API-Token zu erhalten, das Sie für später aufbewahren. Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, die Sie zur Registrierung und Anmeldung einlädt. Nach Abschluss werden Sie automatisch zur aktuellen Seite zurückgeleitet. Ein API-Token reicht aus, um auf alle Dienste der Plattform zuzugreifen, ohne dass für jeden Dienst separat beantragt werden muss. Bei der ersten Beantragung erhalten Sie ein kostenloses Kontingent, um es kostenlos auszuprobieren; wenn das Kontingent erschöpft ist, können Sie im Dashboard Ihr allgemeines Guthaben aufladen.
📘 Vollständige Dokumentation: WebExtrator-Dienstseite →

Authentifizierung

Alle WebExtrator-Schnittstellen verwenden die standardmäßige Bearer-Token-Authentifizierung:

Anfrageparameter

Die Plattformverträge verwenden einheitlich snake_case. Die internen Rendering-Dienste unterstützen camelCase, aber externe Aufrufe verwenden immer snake_case.

Synchronisierte Antwort

Asynchrone Antwort

Wenn async=true (oder callback_url bereitgestellt wird), wird sofort (HTTP 200) zurückgegeben:
Die Ergebnisse werden per POST an callback_url gesendet (wenn konfiguriert) oder können über /webextrator/tasks aktiv abgefragt werden.

Callback-Struktur

Die Plattform sendet ein POST mit dem genau gleichen Envelope wie im synchronen Modus an callback_url, Content-Type: application/json. Eine beliebige Rückgabe von 2xx wird als bestätigt angesehen; 5xx wird mit exponentiellem Backoff etwa 5 Minuten lang erneut versucht.

Fehlerantwort

Fehlerstruktur:

Beispiel

cURL

Python (requests)

Node.js (fetch)

Asynchron + Callback

Gibt sofort { "success": true, "task_id": "...", "trace_id": "...", "started_at": 1777717800.123 } zurück; wenn die Aufgabe abgeschlossen ist, wird die Plattform das vollständige Ergebnis an deine callback_url POSTen.

Cache umgehen

Hinweise und Fallstricke

  • Die Wahl von wait_until ist wichtig. networkidle ist am stabilsten, aber am langsamsten; domcontentloaded ist schnell, könnte aber asynchron injizierte Inhalte übersehen; load eignet sich für traditionelle statische Seiten.
  • Cache-Key ignoriert async. Synchronisierte und asynchrone Anfragen an dieselbe URL treffen denselben Cache-Eintrag, ein beliebiger Wechsel hat keine Auswirkungen.
  • Cache-Key ignoriert bypass_cache und cache_ttl_seconds. Diese beiden sind Schalter, die den Antwortinhalt nicht beeinflussen.
  • cookies und headers werden in separaten Caches gespeichert. Das Anpassen dieser beiden führt dazu, dass die erste gleiche Kombination fehlschlägt.
  • Reaktive SPAs überschreiten häufig die Standardzeit von 30 Sekunden. Es wird empfohlen, timeout: 60, wait_until: "domcontentloaded", delay: 4 zu verwenden und mit wait_for_selector auf die wirklich interessierenden Elemente zu warten.
  • block_resources ist der schnellste Weg, um die Latenz zu reduzieren. Standardmäßig sind Bilder / Schriftarten / Medien bereits blockiert; wenn du Extraktionen machst, die nicht von CSS-Layouts abhängen, kannst du mit stylesheet noch schneller werden.