什么是同步和异步请求?
同步 (/scrape) 发送请求并在同一 HTTP 响应中等待爬取的数据。连接保持打开,直到结果准备好。
异步 (/trigger) 发送请求,立即接收 snapshot_id,稍后通过轮询、webhook 或外部存储交付来收集结果。
何时使用每种方法
在以下情况下使用同步请求:- 您需要少量 URL(1-20 个)的实时结果
- 您正在构建等待数据的交互式应用程序
- 您想要最简单的集成,无需后台任务管理
- 您在一个批次中爬取超过 20 个 URL
- 您运行发现查询(按关键字搜索、按公司查找帖子)
- 您希望将结果交付到 webhook 或外部存储(S3、Snowflake)
- 您正在构建需要可靠性和重试处理的生产管道
它们的比较
| 功能 | 同步 /scrape | 异步 /trigger |
|---|---|---|
| 每个请求的最大 URL 数 | 20 | 无限制(最多 1 GB 输入) |
| 响应 | 直接爬取数据 | snapshot_id(数据单独检索) |
| 超时 | 1 分钟(自动转换为异步) | 无超时 |
| 发现支持 | 否 | 是 |
| Webhook 交付 | 否 | 是 |
| 外部存储 | 否 | 是 |
| 并发限制 | 1,500 个请求 | 100 个请求 |
| 理想用途 | 快速查询、实时应用 | 批处理作业、生产管道 |
同步请求流程
snapshot_id。
异步请求流程
- 轮询 API - 使用
GET /progress/{snapshot_id}检查状态,然后使用GET /snapshot/{snapshot_id}下载 - Webhook - 当作业完成时,Bright Data 将结果发送到您的 URL
- 外部存储 - 结果交付到 S3、Snowflake 或其他存储
常见场景
单页查询 您的应用需要从一个 URL 实时获取数据(例如,充实销售线索、检查产品页面)。使用同步。一个 URL,即时结果,简单集成。 每周批处理报告 每周一,您爬取 500 个跨多个来源匹配搜索条件的页面。使用异步和发现功能。将结果交付到 S3 供您的数据管道使用。 具有后台充实的实时应用 用户触发搜索,您立即显示初始结果。使用同步进行第一次查询,然后使用异步和 webhook 在后台收集额外数据。 每晚竞争对手监控 每晚,您爬取数百个竞争对手页面。使用异步和 S3 交付。无需轮询,数据出现在您的桶中。常见误解
异步总是比同步快
异步总是比同步快
不正确。对于 1-5 个 URL,同步请求更快,因为没有作业调��开销。异步在爬取开始前添加了队列步骤。对于小型、实时查询,使用同步。
如果同步请求花费时间过长,它们会失败
如果同步请求花费时间过长,它们会失败
它们不会失败。如果同步请求超过 1 分钟超时,Bright Data API 会自动将其转换为异步作业并返回
snapshot_id。您的数据仍然会被收集。您只需使用异步流程来检索它。在代码中处理自动转换
如果同步请求超过 1 分钟超时,API 返回snapshot_id 而不是数据。处理两种情况:
Python
常见问题
我可以在同一应用中混合同步和异步吗?
我可以在同一应用中混合同步和异步吗?
是的。许多应用对面向用户的实时查询使用同步���对批处理后台作业使用异步。为每个用例使用适合的方法。
当异步结果准备好时,如果我的 webhook 关闭了会发生什么?
当异步结果准备好时,如果我的 webhook 关闭了会发生什么?
如果您的端点返回非 200 状态或超时,Bright Data 会重试 webhook 交付。如果您需要有保证的交付,请使用 S3 或其他外部存储选项。
同步和异步之间有成本差异吗?
同步和异步之间有成本差异吗?
没有。定价是按成功记录计算的,与请求方法无关。同步和异步之间的选择是关于数量、延迟和交付偏好,而不是成本。
后续步骤
Scraper APIs 概览
浏览所有可用的 Bright Data Scraper APIs。
交付选项
Webhook、S3、Snowflake、Azure 等。