# Получение веб-хука
Чтобы получать отправленные данные от вашего сканера, вам необходимо создать конечную точку веб-перехватчика на вашем сервере.
Ваш серверный вебхук должен...
- Быть доступным для общественности Crawlbase серверы
- Будьте готовы получить POSTзвонит и отвечает в течение 200 мс
- Ответьте в течение 200 мс, указав код статуса. 200,201or204без содержания
Способ структурирования данных будет зависеть от формата, который вы указали при отправке URL-адреса с параметром формата. &format=html (что является значением по умолчанию) или &format=json.
The Crawler Движок отправит данные обратно в конечную точку обратного вызова через POST метод с gzip сжатия.
Примечание: Убедитесь, что ваш обратный вызов доступен в любое время. Каждый раз, когда мы доставляем ваш обратный вызов и ваш сервер не может вернуть успешный ответ, мы повторяем попытку сканирования страницы, а затем снова пытаемся доставить. Эти повторные попытки считаются успешными запросами, поэтому они оплачиваются.
Примечание: Если вы используете веб-хуки Zapier, Crawler не отправляет сжатые данные. Хуки Zapier не работают со сжатием Gzip.
# Запросить примеры
Здесь вы найдете примеры того, что вы можете ожидать получить от Crawlbase Crawler к веб-хуку вашего сервера.
# Формат HTML
Это произойдет, когда вы вызовете API с помощью &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
# Формат JSON
Это произойдет, когда вы вызовете API с помощью &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"
}
Обратите внимание, что pc_status и original_status должны быть проверены. Вы можете прочитать больше о них здесь и здесь соответственно.
# Тестирование интеграции
При создании вебхука может быть полезно увидеть точный ответ для конкретного URL-адреса.
Для облегчения тестирования вы можете настроить Crawlbase Storage в ваших краулерах для целей тестирования. Вы можете посмотреть здесь (открывается новое окно) (opens new window).
# Мониторинговый бот
The Crawler будет отслеживать URL вашего веб-перехватчика, чтобы знать его статус, если веб-перехватчик не работает Crawler приостановится и возобновится автоматически, когда ваш веб-хук снова заработает.
Наш бот мониторинга будет продолжать отправлять запросы на вашу конечную точку веб-перехвата. Обязательно игнорируйте эти запросы с помощью 200 код состояния.
- Запросы на мониторинг поступают как POST-запрос с телом json, как и в случае с вызовами без мониторинга.
- Запросы на мониторинг поставляются с пользовательским агентом Crawlbase Monitoring Bot 1.0поэтому вы можете легко игнорировать их со статусом200.
# Защита вашего вебхука
Если вы используете какую-то случайную конечную точку, например yourdomain.com/2340JOiow43djoqe21rjosi Маловероятно, что это будет обнаружено, но в любом случае вы можете защитить конечную точку веб-перехватчика следующими методами (или несколькими из них в сочетании):
- Отправить индивидуальный заголовок по вашему запросу с помощью некоторого токена, существование которого вы проверяете в своем вебхуке.
- Используйте некоторые urlпараметр в вашем URL и проверьте его наличие в запросе вебхука, например:yourdomain.com/2340JOiow43djoqe21rjosi?token=1234
- Принять только POSTзапросы.
- Проверьте наличие некоторых ожидаемых заголовков (например, Pc-Status,Original-Status,ridИ т.д.).
Мы не рекомендуем вносить IP-адреса в белый список, поскольк�� наши сканеры могут отправлять запросы с разных IP-адресов, а IP-адреса могут меняться без предварительного уведомления.
