- HTTP 错误:请求本身失败。API 返回 4xx 状态码,不会运行任何任务
- 记录错误:请求成功,但某个输入无法抓取。失败的记录会在结果中带有
error_code字段
Scraper API 的 HTTP 错误是什么意思?
Scraper API 的POST /datasets/v3/trigger 和 POST /datasets/v3/scrape 会返回以下 HTTP 错误。
除非某行注明了具体端点,
/trigger 和 /scrape 返回的消息相同。validation_error 和 parse_error 为 JSON 响应体,其他消息均为纯文本。
频繁收到 429 错误会怎样?
任何 IP 在 5 分钟内收到 25 次及以上 HTTP 429 响应,就会被 Bright Data 临时封禁。该阈值统计的是 429 响应数,而不是请求总数。被封禁的 IP 的所有 API 请求都会被拒绝,临时 IP 封禁会在一小时后自动解除,无需联系 Bright Data 支持团队。被封禁前如何处理 429 响应?
429 是要求放慢速度的信号,而不是立即重试的信号:- 收到 429 后立即停止发送新请求。
- 如果响应包含
Retry-After标头,等待其指定的秒数。否则按 2、4、8、16、32 秒退避,并在每次等待中加入随机抖动。 - 设定固定的重试次数上限。如果 429 响应持续出现,请暂停并降低并发。
You have too many running jobs for this dataset 表示您已有 5,000 个活动任务或快照在运行,因此在运行中的任务完成前,请提交更少、更大的任务。
我的 IP 已被封禁怎么办?
临时 IP 封禁会在一小时后自动解除,恢复访问无需依赖 Bright Data 支持团队:- 停止从被封禁 IP 发出的所有 API 请求,包括重试。
- 解决导致 429 响应的原因,例如降低并发,或将多个输入合并为更少的任务。
- 一小时后,以更低的请求速率或并发逐步恢复,避免再次被封禁。
Scraper API 的记录错误是什么意思?
记录错误表示 Scraper API 任务已运行,但某个输入没有返回数据。只有在请求中设置include_errors=true 时,失败的记录才会出现在结果中。请根据 error_code 字段进行分支处理,而不是依赖自由文本的 error 消息,因为消息文本会随爬虫更新而变化。
Bright Data 不对失败的记录收费。
以下是在
POST /datasets/v3/scrape 中设置 include_errors=true 时返回的 dead_page 记录。请求本身返回 HTTP 200:
input,便于将错误与您发送的 URL 对应起来。完整的记录错误代码列表请参见 Scraper Studio 错误代码。
空结果算错误吗?
不算。空结果([])表示任务没有返回数据,不是 HTTP 错误。要查看某个输入为何没有返回数据,请带上 include_errors=true 重新发送请求,并查看每条记录的 error_code。