什么是同步和异步请求
同步请求会保持连接直到结果到达,通常只需几秒。一个请求对应一个响应,无需跟踪其他内容。 异步请求会立即返回一个 ID,工作在后台继续。您稍后通过轮询取回结果,或让 Bright Data 推送到 webhook 或存储。没有任何操作在等待打开的连接,因此您可以在一分钟内提交数千个任务,待其就绪后再处理。各 API 如何实现这两种模式
何时使用哪种模式
在以下情况使用同步请求:- 您在服务正在等待的实时用户,例如”立即查看该商品”按钮或屏幕上的搜索结果。
- 您需要在几秒内获得少量输入的结果。在 Scraper API 中,这意味着少量 URL。
- 您在做原型,希望集成尽可能简单。
- 您运行定时任务:每晚的竞品监控、每周的排名跟踪。
- 您的抓取量较大,每小时数百次请求以上,或 URL 数量超过一次同步调用所能容纳的。
- 您在 Scraper API 上运行发现任务:按关键词搜索、按公司查找帖子。
- 您希望结果投递到 webhook、S3、Snowflake 或其他存储。
- 您在构建数据管道,几分钟内的新鲜度即可接受,并希望减少重试。
Scraper API 的流程
同步:snapshot_id,并以异步方式完成任务;数据仍会被采集,您像取回异步任务那样取回即可。调用 /scrape 的代码必须根据状态码分支处理。分支和轮询循环见如何处理 202 响应。
异步:
GET /datasets/v3/progress/{snapshot_id} 并通过 GET /datasets/v3/snapshot/{snapshot_id} 下载;在触发请求中传入 endpoint,由 Bright Data 将记录 POST 到您的 URL;或设置存储目标,让文件落入您的存储桶。投递目标见如何投递结果。
Web Unlocker API 和 SERP API 的流程

x-response-id 标头。计费发生在提交时,取回结果不计费,结果保留 48 小时。在任务完成前轮询会返回 202。按请求或在区域设置中配置 webhook_url,结果就绪时 Bright Data 会从 IP 100.27.150.189 和 18.214.10.85 POST 一条通知;请将这两个 IP 加入白名单,否则防火墙可能拦截。一个区域要么是同步要么是异步,两者都需要时请各保留一个区域。
有哪些取舍
常见误解
异步总是比同步快
对于少量输入,同步更快:抓取开始前没有排队步骤。小型实时查询请使用同步。同步请求耗时过长会失败
不会失败。在 Scraper API 上,超过 1 分钟的同步请求返回 HTTP 202 和snapshot_id,任务继续;在 Web Unlocker API 和 SERP API 上,同步请求会保持连接直到结果到达。
常见问题
可以在同一应用中混合使用同步和异步吗?
可以。大多数应用对面向用户的查询使用同步,对批量任务使用异步。在 Web Unlocker API 和 SERP API 上,这意味着一个同步区域加一个异步区域。同步和异步之间有成本差异吗?
没有。无论哪种模式,Scraper API 按成功记录计费,Web Unlocker API 和 SERP API 按请求计费。取回异步结果免费。结果就绪时我的 webhook 宕机了怎么办?
当您的端点返回非 200 状态或超时时,Scraper API 会重试 webhook 投递。若需可靠投递,请改用存储目标。丢失了响应 ID 或快照 ID 怎么办?
Web Unlocker API 或 SERP API 的响应 ID 无法找回,因此提交时请将其与请求元数据一起保存。Scraper API 的快照 ID 可通过获取快照在 30 天内列出。后续步骤
使用异步请求批量抓取
触发、监控和下载 Scraper API 批量任务。
投递结果
Webhook、S3、Google Cloud、Azure、SFTP 和 Snowflake。
SERP API 异步请求
搜索结果的异步区域、轮询和 webhook IP。
Web Unlocker API 异步请求
解锁请求的异步形式。