Skip to main content

概述

/browser 端点支持 JavaScript 渲染的抓取。与 /fetch(返回原始 HTTP 响应)不同,/browser 会等待动态内容加载并返回完全渲染的页面。 何时使用 /browser 而非 /fetch
  • 页面需要 JavaScript 才能加载内容(SPA、动态网站)
  • 您需要所有 Cookie,包括客户端脚本设置的 Cookie
  • 您想执行自定义 JavaScript 提取数据
  • 您需要渲染页面的截图
响应格式与 /fetch 相同(metarawraw_json),并额外包含 Cookie、截图和 JS 执行结果。

端点

/fetch 用法一致 — 所有参数通过请求头传递。

请求头

等待策略

Cookies

简单 Cookie — 使用标准 Cookie 请求头:
完整 Cookie 对象 — 使用 X-Cookies 请求头,需要域名、路径等控制时:

Steps

页面加载后执行顺序浏览器操作 — 登录流程、多页导航、表单填写。 通过 X-Steps 请求头传递 JSON 数组:
可用操作: 每步在前一步完成后执行。添加 "continueOnError": true 可在失败时继续。 适用于 /browser(步骤完成后捕获)和 /browser/stream(步骤期间流式传输,结果以 step_ok / step_error 事件到达)。

资源阻止

阻止图片和字体可以将渲染时间减少 50% 以上。

响应

响应验证

使用 X-Expect-SelectorX-Expect-Contains 验证内容。验证失败时 API 自动在不同节点重试。

示例

渲染 JavaScript 页面

等待特定内容

使用 JavaScript 提取数据

截图

Python


Browser Stream(SSE)

对于长时间的实时会话,使用 /browser/stream。浏览器保持打开状态,通过 SSE 实时流式传输事件。 仅捕获数据请求(XHR/Fetch API 调用)— 完整 HTML 页面和 JavaScript 包会被自动过滤。默认不阻止任何资源,确保页面和组件正常加载。默认等待策略为 networkidle。所有数据通过 gzip 压缩传输。 使用场景:
  • 捕获页面接收的 WebSocket 帧(实时数据流)
  • 监控页面发出的 XHR/Fetch API 调用(实际数据端点)
  • 监视 DOM 元素变化(价格更新、内容变化)

端点

请求头

/browser 相同,另加:

SSE 事件

示例:捕获页面 WebSocket 数据

SSE 流持续运行直到断开连接。每个事件格式为 event: type\ndata: json\n\n。使用 curl -N(无缓冲)实时查看事件。

Python

后续步骤

HTTP Fetch

对于不需要 JavaScript 渲染的页面,使用更快的 /fetch 端点。

Error handling

状态码、封锁检测和重试策略。