# Получение веб-хука
Чтобы получать отправленные данные от вашего сканера, вам необходимо создать конечную точку веб-перехватчика на вашем сервере.
Ваш серверный вебхук должен...
- Быть доступным для общественности Crawlbase серверы
- Будьте готовы получить
POST
звонит и отвечает в течение 200 мс - Ответьте в течение 200 мс, указав код статуса.
200
,201
or204
без содержания
Способ структурирования данных будет зависеть от формата, который вы указали при отправке 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-адреса могут меняться без предварительного уведомления.