Skip to main content
Bright Data Scraper Studio 在两种 worker 类型上运行爬虫:Browser worker(真实的无头浏览器)或 Code worker(原始 HTTP 请求)。请根据目标站点所需的最低交互级别进行选择 — Code worker 更快、更便宜,建议先从它开始,仅在 Code worker 无法获取数据时再切换。

Browser worker 与 Code worker

应该按爬虫还是按阶段分配 worker?

默认情况下,Bright Data Scraper Studio 爬虫以 Worker per scraper(按爬虫分配 worker)模式运行,所有阶段共用同一种 worker 类型。Worker per stage(按阶段分配 worker)现已向所有用户开放,可为每个阶段单独分配不同的 worker 类型。

何时使用 Worker per scraper?

当所有阶段需要相同的 worker 类型时,使用 Worker per scraper:
  • 所有阶段都需要 Browser worker。 例如,阶段 1 浏览需要点击或输入才能触发结果的搜索页,阶段 2 滚动浏览动态产品列表。
  • 所有阶段都需要 Code worker。 例如,阶段 1 获取所有可用 URL,阶段 2 直接通过 HTTP 加载每个产品页。

何时使用 Worker per stage?

当不同阶段有不同的交互需求时,使用 Worker per stage:
  • 阶段 1 需要 Code worker。 例如,从分类页获取产品 URL 列表。
  • 阶段 2 需要 Browser worker。 例如,加载通过 JavaScript 在客户端渲染价格和评论的产品页。
为每个阶段分配合适的 worker,可避免在不需要时启动完整的浏览器会话,从而缩短运行时间。

如何配置 Worker per stage?

  1. 在 Bright Data Scraper Studio IDE 中打开您的爬虫。
  2. Settings(设置)下拉菜单中,开启 Worker per stage
  3. 为每个阶段将 Worker 设置为 Browser workerCode worker
  4. 保存爬虫。
如果您为调用仅限浏览器函数(例如 waitclickscroll_to)的阶段分配了 Code worker,Bright Data Scraper Studio 会抛出 Incompatible worker 错误:
完整的仅限浏览器函数列表,请参见 哪些函数仅 Browser worker 可用?

何时使用 Browser worker?

当以下任意一项成立时,使用 Browser worker:
  • 目标数据由 JavaScript 在客户端渲染,原始 HTML 响应中不存在
  • 需要通过点击、滚动、悬停或输入才能访问或显示数据
  • 在内容渲染前需要处理 cookie 横幅或关闭弹窗
  • 需要使用 tag_responsetag_scriptcapture_graphql 捕获网络流量
  • 需要登录、保持会话或与表单交互

何时使用 Code worker?

当以下条件全部满足时,使用 Code worker:
  • 完整的目标数据存在于原始 HTML 响应或公开 JSON 端点中
  • 无需执行 JavaScript 即可渲染数据
  • 无需点击、滚动或输入等交互
  • 您正在爬取站点地图、RSS 源或 API 端点
先从 Code worker 开始。如果原始响应中没有您需要的数据,再切换为 Browser worker。可随时在同一爬虫上更换 worker 类型。

哪些函数仅 Browser worker 可用?

依赖实时浏览器会话的 Bright Data Scraper Studio 函数,从 Code worker 中调用时会抛出错误。如果您的爬虫需要以下任何函数,请选择 Browser worker:

常见问题

可以。在 Bright Data Scraper Studio IDE 中打开爬虫,在 Settings(设置)面板中更改 worker 类型。如果您从 Browser worker 切换到 Code worker,请删除上述所有仅限浏览器的函数调用,否则爬虫在下次运行时会抛出错误。
是的。Code worker 仅发送一次 HTTP 请求,无需浏览器启动也无需页面渲染,因此整次往返耗时仅为 Browser worker 运行的极小一部分。具体加速比取决于目标站点,但 Code worker 任务通常在数秒内完成。
支持。使用 tag_responsetag_all_responses 捕获页面发起的任意 XHR 或 fetch;使用 capture_graphql 捕获并重放 GraphQL 查询。完整参考请参见 Scraper Studio 函数参考

相关内容

Scraper Studio 函数参考

交互命令与解析器命令的完整参考

最佳实践

构建高效爬虫的推荐模式