前置条件
- 一个Bright Data 账户,拥有有效的 API key
- 熟悉异步请求工作流
- 一个可公开访问的 HTTP 端点(或测试工具,如 webhook.site)
Webhook 如何工作
当您使用endpoint URL 触发异步采集时,Bright Data 会在任务完成后向您的端点发送 POST 请求,包含抓取的数据。无需轮询。
第 1 步:设置测试 webhook
为了测试,使用 webhook.site 获取临时公共 URL:- 在浏览器中打开 webhook.site
- 复制显示的唯一 URL(例如,
https://webhook.site/abc-123-def) - 保持页面打开以监控传入的请求
第 2 步:使用 webhook URL 触发采集
将endpoint 查询参数添加到异步 /trigger 请求中:
第 3 步:验证传递
采集完成后(通常对于几个产品需要 30-60 秒),检查您的 webhook.site 页面。您应该会看到一个包含抓取数据的POST 请求。
负载是与从直接 API 下载相同的 JSON 数组:
生产环境 webhook 设置
对于生产环境,将endpoint URL 指向您自己的服务器端点。
Express.js 处理程序
server.js
Flask 处理程序
server.py
带授权的 Webhook
如果您的端点需要身份验证,添加webhook_header_Authorization 参数:
Webhook IP 白名单
如果您的服务器使用 IP 白名单,添加以下 Bright Data webhook 源 IP:故障排除
Webhook 未收到数据?
Webhook 未收到数据?
- 验证 URL 是否可公开访问(不是
localhost) - 检查您的端点是否在 30 秒内返回
200状态码 - 验证如果您有防火墙规则,上述 webhook IP 是否已白名单
接收压缩数据?
接收压缩数据?
如果您省略
uncompressed_webhook=true,数据会以 gzip 压缩形式到达。将 uncompressed_webhook=true 添加到您的触发 URL,或在您的服务器上解压负载。负载对您的服务器来说太大?
负载对您的服务器来说太大?
大型采集可以产生高达 1 GB 的负载。在 Express.js 中设置
express.json({ limit: "100mb" }) 或在您的框架中设置等效选项。如果您需要处理非常大的数据集,改用 S3 传递。后续步骤
传递到 Amazon S3
直接将结果存储在您的 S3 存储桶中。
所有传递选项
Snowflake、Azure、GCS 等。