身份验证
Crawlbase 使用简单的基于 token 的身份验证。无需 OAuth 流程,无过期凭证,只需在查询字符串或 SDK 配置中放入一个 token 即可。
概述
每个 Crawlbase 账号都有两个 token,在您注册时自动生成。两个 token 都对同一账号进行身份验证并共享相同配额,只是通过不同的基础设施路由请求。
用于针对 API 和静态页面的常规 HTTP 请求。速度最快,成本最低。除非需要 JavaScript 渲染,否则请使用此 token。
将请求路由到真实的无头 Chrome 实例。适用于 SPA、无限滚动以及任何在客户端渲染内容的网站。
查看您的 token
注册后即可在控制台中查看这两个 token。它们形如 aBcD1234efGh5678:约 22 个字母数字字符。
如何进行身份验证
在每个请求中,将您的 token 作为 token 查询参数传入。这就是全部的身份验证方案。
GEThttps://api.crawlbase.com/?token=YOUR_TOKEN&url=...
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN&url=https%3A%2F%2Fexample.com'from crawlbase import CrawlingAPI
# Pass your token at construction; reuse the client across requests
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get('https://example.com')const { CrawlingAPI } = require('crawlbase');
const api = new CrawlingAPI({ token: process.env.CRAWLBASE_TOKEN });
const res = await api.get('https://example.com');require 'crawlbase'
api = Crawlbase::API.new(token: ENV['CRAWLBASE_TOKEN'])
res = api.get('https://example.com') getenv('CRAWLBASE_TOKEN')]);
$res = $api->get('https://example.com');package main
import (
"os"
"github.com/crawlbase/crawlbase-go"
)
func main() {
api := crawlbase.NewCrawlingAPI(os.Getenv("CRAWLBASE_TOKEN"))
res, _ := api.Get("https://example.com")
_ = res
}选择合适的 token
快速决策树:
| 网站类型 | Token | 原因 |
|---|---|---|
| REST/GraphQL API | Normal | 已返回 JSON,无需渲染 |
| 服务端渲染的 HTML(Wordpress、传统电商) | Normal | 内容已包含在初始响应中 |
| SPA(React/Vue/Angular/Svelte) | JavaScript | 初始 HTML 为空;需要执行 JS |
| 无限滚动、懒加载网格 | JavaScript | 需要滚动/等待才能填充内容 |
| 带有机器人挑战的网站(Cloudflare 等) | JavaScript | 需要浏览器指纹才能通过 |
如果不确定,先尝试 Normal。如果响应中缺少您在浏览器中能看到的内容,再切换到 JavaScript。
安全与轮换
请像对待密码一样对待 token。不要将其提交到版本控制中,不要粘贴到工单里,如果怀疑泄露,请及时轮换。
- 使用环境变量:切勿将 token 硬编码到源文件中。
- 从控制台轮换:「Reset token」按钮会生成新值并立即使旧值失效。
- 每个环境使用独立的 token:将开发环境与生产环境放在不同的账号下,这样其中一个泄露不会影响另一个。
- 切勿在客户端暴露 token:Crawlbase 调用必须从您的后端发起。出现在浏览器 JavaScript 中的 token 等同于落入所有人之手。
不要将 token 下发到浏览器
浏览器端的 token 会通过 DevTools、网络日志、source map 以及共享截图泄露。请始终通过您自己的后端代理 Crawlbase 调用。
身份验证相关错误
如果您的 token 出现问题,将会收到以下响应之一:
Token 缺失、格式错误或已被重置。请仔细核对该值,并确认您为该请求类型使用了正确的 token。
账号额度已用尽或试用期已结束。请在控制台充值。
Token 有效,但无权访问此产品(例如,在仅支持 JS 的 endpoint 上使用了 Normal token)。
完整的状态码列表,请参阅 Status Codes。