# Webhook-Empfang

Um die gepushten Daten von Ihrem Crawler Um 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.

Eine Crawler-Engine sendet die Daten an Ihren Callback-Endpunkt zurück 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 werden 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 mit dem aufrufen &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 mit dem aufrufen &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

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

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

# Überwachungsbot

Der Crawler Überwachen Sie 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 auch 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:

  • Senden Sie einen [benutzerdefinierten 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 Gewöhnlich versandfertig in 3 bis 4 Tagen.
  • Ü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.