身份验证
Crawlbase 使用简单的基于 token 的身份验证。无需 OAuth 流程,无过期凭证,只需在查询字符串或 SDK 配置中放入一个 token 即可。
概述
每个 Crawlbase 账号都有两个 token,在您注册时自动生成。两个 token 都对同一账号进行身份验证并共享相同配额,只是通过不同的基础设施路由请求。
注册后即可在控制台中查看这两个 token。它们形如 aBcD1234efGh5678:约 22 个字母数字字符。
如何进行身份验证
在每个请求中,将您的 token 作为 token 查询参数传入。这就是全部的身份验证方案。
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 会通过 DevTools、网络日志、source map 以及共享截图泄露。请始终通过您自己的后端代理 Crawlbase 调用。
身份验证相关错误
如果您的 token 出现问题,将会收到以下响应之一:
完整的状态码列表,请参阅 Status Codes。