# Получение веб-хука

Чтобы получать отправленные данные от вашего сканера, вам необходимо создать конечную точку веб-перехватчика на вашем сервере.

Ваш серверный вебхук должен...

  • Быть доступным для общественности Crawlbase серверы
  • Будьте готовы получить POST звонит и отвечает в течение 200 мс
  • Ответьте в течение 200 мс, указав код статуса. 200, 201 or 204 без содержания

Способ структурирования данных будет зависеть от формата, который вы указали при отправке URL-адреса с параметром формата. &format=html (что является значением по умолчанию) или &format=json.

Команда 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).

# Мониторинговый бот

Команда 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-адреса могут меняться без предварительного уведомления.