# 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 erreichbar sein von Crawlbase Server
- 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 Strukturierung der Daten 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
.
Der Crawler Die 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, Crawler sendet die Daten nicht komprimiert. Zapier-Hooks funktionieren nicht mit Gzip-Komprimierung.
# Anforderungsbeispiele
Hier finden Sie Beispiele dafür, was Sie erwarten können von Crawlbase Crawler zu Ihrem Server-Webhook.
# 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 und hier beziehungsweise.
# Integration testen
Beim Erstellen Ihres Webhooks kann es hilfreich sein, die genaue Antwort für eine bestimmte URL zu sehen.
Um das Testen zu erleichtern, können Sie Folgendes konfigurieren Crawlbase Storage in Ihren Crawlern zu Testzwecken. Sie können siehe hier (öffnet neues Fenster) (opens new window).
# Überwachungsbot
Der Crawler überwacht Ihre Webhook-URL, um ihren Status zu kennen, wenn der Webhook ausgefallen ist Crawler wird 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 mit einem Token, dessen Existenz Sie in Ihrem Webhook überprüfen.
- Benutze einige
url
Parameter in Ihrer URL und überprüfen Sie seine Existenz in 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.