# Webhook-Empfang

Um die gepushten Daten von Ihrem Crawler zu empfangen, müssen Sie einen Webhook-Endpunkt auf Ihrem Server erstellen.

Ihr Server-Webhook sollte …

  • Öffentlich von Crawlbase-Servern aus erreichbar sein
  • Seien Sie bereit zu empfangen POST Anrufe und Antwort innerhalb von 200ms
  • Antworten Sie innerhalb von 200 ms mit einem Statuscode 200, 201 or 204 ohne Inhalt

Die Art und Weise, wie die Daten strukturiert sind, hängt von dem Format ab, das Sie beim Senden der URL mit dem Formatparameter angegeben haben. &format=html (das ist die Standardeinstellung) oder &format=json.

Die Crawler-Engine sendet die Daten zurück an Ihren Callback-Endpunkt über POST Methode mit gzip Kompression.

Hinweis: Stellen Sie sicher, dass Ihr Rückruf jederzeit verfügbar ist. Jedes Mal, wenn wir Ihren Rückruf übermitteln und Ihr Server keine erfolgreiche Antwort zurückgibt, versuchen wir erneut, die Seite zu crawlen und die Übermittlung dann erneut durchzuführen. Diese Wiederholungsversuche gelten als erfolgreiche Anfragen und werden daher in Rechnung gestellt.

Hinweis: Wenn Sie Zapier-Webhooks verwenden, sendet der Crawler die Daten nicht komprimiert. Zapier-Hooks funktionieren nicht mit Gzip-Komprimierung.

# Anforderungsbeispiele

Hier finden Sie Beispiele dafür, was Sie vom Crawlbase Crawler für Ihren Server-Webhook erwarten können.

# Format HTML

Dies geschieht, wenn Sie die API aufrufen mit dem &format=html.

Headers:
  "Content-Type" => "text/plain"
  "Content-Encoding" => "gzip"
  "Original-Status" => 200
  "PC-Status" => 200
  "rid" => "The RID you received in the push call"
  "url" => "The URL which was crawled"

Body:
  The HTML of the page

# Format JSON

Dies geschieht, wenn Sie die API aufrufen mit dem &format=json.

Headers:
  "Content-Type" => "gzip/json"
  "Content-Encoding" => "gzip"

Body:
{
  pc_status: 200,
  original_status: 200,
  rid: "The RID you received in the push call",
  url: "The URL which was crawled",
  body: "The HTML of the page"
}

Bitte beachten Sie, dass pc_status und original_status müssen überprüft werden. Weitere Informationen dazu finden Sie hier [Hier]/de/crawling-api/response/#pc-status) und Hier beziehungsweise.

# Integration testen

Beim Erstellen Ihres Webhooks kann es hilfreich sein, die genaue Antwort für eine bestimmte URL anzuzeigen.

Um das Testen zu erleichtern, können Sie Crawlbase Storage in Ihren Crawlern zu Testzwecken konfigurieren. Sie können siehe hier (öffnet neues Fenster) (opens new window).

# Überwachungsbot

Der Crawler überwacht Ihre Webhook-URL, um deren Status zu kennen. Wenn der Webhook ausfällt, wird der Crawler angehalten und automatisch fortgesetzt, wenn Ihr Webhook wieder aktiv ist.

Unser Überwachungsbot sendet weiterhin Anfragen an Ihren Webhook-Endpunkt. Ignorieren Sie diese Anfragen unbedingt mit einem 200 Statuscode.

  • Überwachungsanforderungen werden als POST-Anforderungen mit JSON-Text übermittelt, so wie Sie sie auch bei Nicht-Überwachungsanrufen erhalten.
  • Überwachungsanforderungen werden mit dem Benutzeragenten geliefert Crawlbase Monitoring Bot 1.0 Sie können sie also einfach mit dem Status ignorieren 200.

# Schützen Sie Ihren Webhook

Wenn Sie einen zufälligen Endpunkt verwenden, wie yourdomain.com/2340JOiow43djoqe21rjosi Es ist unwahrscheinlich, dass es entdeckt wird, aber Sie können den Webhook-Endpunkt in jedem Fall mit den folgenden Methoden (oder mehreren davon kombiniert) schützen:

  • Sende ein [benutzerdefinierter Header auf Ihre Anfrage]/de/crawler/pushing/#sending-additional-data) mit einem Token, dessen Existenz Sie in Ihrem Webhook überprüfen.
  • Verwenden Sie einige URL-Parameter in Ihrer URL und überprüfen Sie deren Existenz bei der Webhook-Anforderung, etwa: yourdomain.com/2340JOiow43djoqe21rjosi?token=1234
  • Nur akzeptieren POST Anfragen.
  • Überprüfen Sie einige der erwarteten Header (zum Beispiel Pc-Status, Original-Status, ridUsw.).

Wir empfehlen keine IP-Whitelists, da unsere Crawler von vielen verschiedenen IPs pushen können und sich die IPs ohne vorherige Benachrichtigung ändern können.