# Webhook 接收
为了从爬虫接收推送的数据,您需要在服务器中创建一个 webhook 端点。
您的服务器 webhook 应该...
- 可公开联系 Crawlbase 台服务器
- 准备好接收
POST
200毫秒内呼叫和响应 - 在 200 毫秒内响应状态码
200
,201
or204
没有内容
数据的结构方式取决于您在使用格式参数推送 URL 时指定的格式, &format=html
(这是默认设置)或 &format=json
.
- Crawler 引擎将通过以下方式将数据发送回你的回调端点 POST
方法与 gzip
压缩。
请注意: 确保您的回拨随时可用。 每次我们交付给您的回调并且您的服务器未能返回成功的响应时,我们都会重试抓取该页面,然后再次重试交付。 这些重试被认为是成功的请求,因此需要付费。
请注意: 如果您使用 Zapier webhook, Crawler 不发送压缩数据。Zapier 钩子不适用于 Gzip 压缩。
# 请求示例
在这里找到你可以从 Crawlbase Crawler 到您的服务器 webhook。
# 格式化 HTML
当您使用 &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
当您使用 &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
必须检查。 你可以阅读更多关于他们的信息 点击这里 和 点击这里 。
# 测试集成
创建 webhook 时,查看特定 URL 的确切响应会很有帮助。
为了帮助测试,您可以配置 Crawlbase Storage 在您的爬虫程序中用于测试目的。您可以 看到它在这里 (打开新窗口) (opens new window).
# 监控机器人
- Crawler 将监控你的 webhook URL 以了解其状态,如果 webhook 已关闭 Crawler 将暂停,并且当您的 webhook 再次启动时它将自动恢复。
我们的监控机器人将继续向您的 webhook 端点发送请求。 确保忽略这些请求 200
状态码。
- 监控请求以带有 json 正文的 POST 请求的形式出现,因为您将收到非监控调用。
- 监控请求随用户代理一起提供
Crawlbase Monitoring Bot 1.0
所以你可以很容易地用状态忽略它们200
.
# 保护您的网络钩子
如果您使用一些随机端点,例如 yourdomain.com/2340JOiow43djoqe21rjosi
它不太可能被发现,但无论如何,您可以使用以下方法(或其中几种方法组合)保护 webhook 端点:
- 寄一个 根据您的请求自定义标头 使用一些令牌,您可以在 webhook 中检查它是否存在。
- 使用一些
url
参数在你的 URL 中并检查它在 webhook 请求中的存在,例如:yourdomain.com/2340JOiow43djoqe21rjosi?token=1234
- 只接受
POST
请求。 - 检查一些预期的标题(例如
Pc-Status
,Original-Status
,rid
等)。
我们不建议将 IP 列入白名单,因为我们的爬虫可以从许多不同的 IP 推送,并且 IP 可能会在没有事先通知的情况下更改。