# Réception de Webhook
Afin de recevoir les données envoyées par votre robot d'exploration, vous devrez créer un point de terminaison webhook sur votre serveur.
Votre webhook de serveur doit...
- Être accessible publiquement depuis les serveurs de Crawlbase
- Soyez prêt à recevoir
POST
appelle et répond dans les 200 ms - Répondez dans les 200 ms avec un code d'état
200
,201
or204
sans contenu
La manière dont les données sont structurées dépendra du format que vous avez spécifié lors de l'envoi de l'URL avec le paramètre format, &format=html
(qui est la valeur par défaut) ou &format=json
.
Le moteur Crawler renverra les données à votre point de terminaison de rappel via POST
méthode avec gzip
compression.
Remarque : Assurez-vous que votre rappel est disponible à tout moment. Chaque fois que nous livrons à votre rappel et que votre serveur ne parvient pas à renvoyer une réponse réussie, nous réessayons d'explorer la page, puis nous retentons la livraison. Ces tentatives sont considérées comme des demandes réussies, elles sont donc facturées.
Remarque : Si vous utilisez des webhooks Zapier, le Crawler n'envoie pas les données compressées. Les hooks Zapier ne fonctionnent pas avec la compression Gzip.
# Exemples de demandes
Vous trouverez ici des exemples de ce que vous pouvez vous attendre à recevoir de Crawlbase Crawler sur votre webhook de serveur.
# Format HTML
Cela se produira lorsque vous appellerez l'API avec le &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
# Formater JSON
Cela se produira lorsque vous appellerez l'API avec le &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"
}
Gardez à l'esprit que pc_status
et original_status
doivent être vérifiés. Vous pouvez en savoir plus à leur sujet [ici]/fr/crawling-api/response/#pc-status) et ici respectivement.
# Test d'intégration
Lors de la création de votre webhook, il peut être utile de voir la réponse exacte pour une URL spécifique.
Pour faciliter les tests, vous pouvez configurer Crawlbase Storage dans vos robots d'exploration à des fins de test. Vous pouvez voir ici (ouvre une nouvelle fenêtre) (opens new window).
# Bot de surveillance
Le Crawler surveillera l'URL de votre webhook pour connaître son statut. Si le webhook est en panne, le Crawler s'arrêtera et reprendra automatiquement lorsque votre webhook sera à nouveau opérationnel.
Notre robot de surveillance continuera d'envoyer des requêtes à votre point de terminaison webhook. Assurez-vous d'ignorer ces requêtes avec un 200
code d'état.
- Les demandes de surveillance sont présentées sous forme de requête POST avec un corps json comme vous les recevrez avec les appels sans surveillance.
- Les demandes de surveillance sont fournies avec l'agent utilisateur
Crawlbase Monitoring Bot 1.0
afin que vous puissiez facilement les ignorer avec le statut200
.
# Protéger votre webhook
Si vous utilisez un point de terminaison aléatoire comme yourdomain.com/2340JOiow43djoqe21rjosi
il est peu probable qu'il soit découvert, mais dans tous les cas, vous pouvez protéger le point de terminaison du webhook avec les méthodes suivantes (ou plusieurs d'entre elles combinées) :
- Envoyer nous [en-tête personnalisé selon votre demande]/fr/crawler/pushing/#sending-additional-data) avec un jeton dont vous vérifiez l'existence dans votre webhook.
- Utilisez un paramètre d'URL dans votre URL et vérifiez son existence sur la demande de webhook, comme :
yourdomain.com/2340JOiow43djoqe21rjosi?token=1234
- Accepter uniquement
POST
demandes. - Vérifiez certains des en-têtes attendus (par exemple
Pc-Status
,Original-Status
,rid
Etc).
Nous ne recommandons pas la liste blanche d'adresses IP, car nos robots d'exploration peuvent effectuer des opérations à partir de nombreuses adresses IP différentes et les adresses IP peuvent changer sans notification préalable.