# 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
or204
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 ignorieren200
.
# 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
,rid
Usw.).
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.