概述
/browser 端点支持 JavaScript 渲染的抓取。与 /fetch(返回原始 HTTP 响应)不同,/browser 会等待动态内容加载并返回完全渲染的页面。
何时使用 /browser 而非 /fetch:
- 页面需要 JavaScript 才能加载内容(SPA、动态网站)
- 您需要所有 Cookie,包括客户端脚本设置的 Cookie
- 您想执行自定义 JavaScript 提取数据
- 您需要渲染页面的截图
/fetch 相同(meta、raw、raw_json),并额外包含 Cookie、截图和 JS 执行结果。
端点
/fetch 用法一致 — 所有参数通过请求头传递。
请求头
等待策略
Cookies
简单 Cookie — 使用标准Cookie 请求头:
X-Cookies 请求头,需要域名、路径等控制时:
Steps
页面加载后执行顺序浏览器操作 — 登录流程、多页导航、表单填写。 通过X-Steps 请求头传递 JSON 数组:
每步在前一步完成后执行。添加
"continueOnError": true 可在失败时继续。
适用于 /browser(步骤完成后捕获)和 /browser/stream(步骤期间流式传输,结果以 step_ok / step_error 事件到达)。
资源阻止
响应
响应验证
使用X-Expect-Selector 和 X-Expect-Contains 验证内容。验证失败时 API 自动在不同节点重试。
示例
渲染 JavaScript 页面
等待特定内容
使用 JavaScript 提取数据
截图
带 Cookie
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
状态码、封锁检测和重试策略。