Claude Code + Bright Data Web Scraping:2026 年 3 步搭建 AI 爬虫
本文记录了我用 Claude Code + Bright Data CLI 搭建生产级爬虫的完整实践。核心思路很简单——不要让 Agent 自己裸写 CSS 选择器,而是通过 Bright Data CLI 让它调用真正的采集基础设施:住宅代理、JS 渲染、CAPTCHA 处理全部内置。
大致分为三步:npm install -g @brightdata/cli → bdata login → bdata scraper create <url> "字段描述",生成的 Collector ID 可以在 Claude Code 内嵌终端直接复用,也可以通过 brightdata skill add bright-data-mcp 深度接入 MCP。每个新账号自动获得每月 5,000 次免费request。本文带大家详细体验一下。
想直接测试这套方案?可以先注册 Bright Data,创建一个 scraper,再回到 Claude Code 中调用。这样可以先验证你的目标网站是否适合这套采集流程。
背景
过去三个月,我一直在用 Claude Code 做日常开发。说实话,让它写业务代码、跑测试、管 Git,体验确实不错。但每次我想让它帮我写一个"能上生产环境"的爬虫,他就变味儿了——Agent 能写出漂亮的选择器,却搞不定代理轮换、JS 动态渲染,更不说网站改版后的自愈。所以结果就是Demo 跑得通,上线第二天就挂。后来我发现问题不在于 Agent 的编码能力,而在于它缺少真正的采集基础设施。直到我接入了 Bright Data CLI ,这个难题才解决,我的Agent 终于实现了通过终端命令调用专业的采集能力,而不是自己"裸写"选择器。
这个痛点其实很普遍。Reddit 的 r/AI_Agents 社区里也经常有人吐槽"Web scraping projects are not easy"——Agent 写的选择器在真实网络环境里脆弱得像纸糊的。根本原因就是Agent 擅长理解页面结构,但不擅长处理反爬、代理、验证码这些基础设施层面的问题。与其让 Agent 去做它不擅长的事,倒不如给它一个现成的采集工具去调用。这就是 Bright Data CLI 解决问题的思路。
核心思路
传统做法是让 Agent 直接操控浏览器(比如 Puppeteer/Playwright),或者让它手写 fetch + cheerio 解析逻辑。两种方式都有硬伤:
- 裸浏览器方案:Agent 拿到的是一整页 HTML,需要自己解析。遇到 Cloudflare 防护直接拿到一张挑战页,Agent 还会把它当正文来"理解"。
- 手写选择器方案:选择器一改就废。网站改版后返回 null 或半截数据,Agent 还会把这当"事实"去用。
与之不同的是,Bright Data CLI 的做法会把采集能力封装成终端命令,Agent 只管调用,不用管基础设施。代理轮换、JS 渲染、CAPTCHA 处理 、真实用户指纹——全部内置在 Bright Data 的网络里(20,000+ 客户,ISO 27001 认证,SOC 2 Type II 合规,仅采集公开数据,符合 GDPR 和 CCPA)。架构总览如下图。

操作步骤
第一步:安装 CLI
在终端输入下面指令
npm install -g @brightdata/cli
安装后我们会得到两个命令:brightdata 和它的简写 bdata,用哪个都行。要求 Node.js 20+,LTS 版本推荐。
如果你不想全局安装,也可以用 npx -p @brightdata/cli brightdata <command> 按需运行,不影响使用。
第二步:登录认证
在终端输入下面指令
bdata login
浏览器会自动打开 Bright Data 的 OAuth 登录页面。登录成功后,CLI 会自动完成两件事:
- 在本地安全存储我们的 API Key(权限
0600,仅所有者可读) - 自动创建两个专用代理 zone:
cli_unlocker(解锁 API)和cli_browser(浏览器 API)
之后所有命令自动认证,不需要重复登录。如果你在 SSH 或无浏览器环境,可以用 bdata login --device 走设备授权流程。

第三步:用自然语言创建爬虫
这是最关键的一步。你不需要写任何选择器,只需要用自然语言描述你要什么字段:
bdata scraper create https://news.ycombinator.com \
"Extract top stories: title, url, points, author, comment count"
AI 会在 5-15 分钟内生成一个完整的爬虫(复杂目标最多 25 分钟),返回一个 Collector ID:
Plain Text
Collector ID: c_mpohus372o5tmid1jk
Status: ready

这个 Collector ID 是核心资产——它跨会话稳定,后续所有操作都围绕它展开。接下来直接运行:
bdata scraper run c_mpohus372o5tmid1jk https://news.ycombinator.com --pretty
返回的是结构化 JSON,不是一坨 HTML 让你自己解析:

拿到的是干净的 JSON 数组,每条记录都有明确的 schema。Agent 可以直接消费这些数据,不需要自己做任何解析。
下一步可以把 Collector ID 接入你的 Agent 工作流,让 Claude Code 在后续任务中直接复用现有 scraper,而不是每次重新生成选择器。
复用 Collector ID
上面三步是在终端自己手动跑的。我们真正的目标是让 Agent 自己调这些能力。做法很简单,把 Collector ID 写进项目配置文件,让 Agent 跨会话复用就行了。
Claude Code:写入 CLAUDE.md
## 数据采集
- Hacker News 热榜爬虫 Collector ID: `c_mpohus372o5tmid1jk`
- 运行命令: `bdata scraper run c_mpohus372o5tmid1jk https://news.ycombinator.com --pretty`
- 输出格式: JSON 数组,字段包括 title, url, points, author, comment_count
Cursor:写入 .cursor/rules
Codex:写入 CODEX.md
这样 Agent 在后续会话中看到需要采集数据时,会直接调用这个 Collector ID,而不是重新写选择器。

通过 MCP 接入
如果我们想让 Agent 更紧密地调用 Bright Data 的全套能力(不只是 scraper),还可以通过 skill 安装 MCP 集成:
brightdata skill add bright-data-mcp
只需要一条命令,Bright Data 的 MCP 工具(搜索、抓取、结构化数据提取等)就会作为技能注入 Claude Code。之后我们在 Claude Code 里直接用自然语言说"帮我抓一下这个 Amazon 商品页的价格",Agent 会自动选择合适的工具去执行。也可以用 brightdata skill add 交互式选择需要的技能(还支持 scrape、search、data-feeds 等)。

想让 Claude Code 直接调用 Web Data?
使用 Bright Data MCP,可以把实时 Web Access 工具直接接入兼容 MCP 的 AI Agent。相比手动执行 CLI 命令,MCP 更适合需要让 Agent 自主选择搜索、抓取和数据提取工具的工作流。
一键自愈
这是我觉得最实用的功能。传统爬虫在网站改版后会静默失败——不报错,只返回 null 或空数据。只有等我们自己发现了,再去手动修选择器。而Bright Data CLI 的自愈机制可以原地修复:
bdata scraper heal c_mpohus372o5tmid1jk \
"The points field returns null since the redesign. Re-capture points from the new page structure." \
--url https://news.ycombinator.com
修复完成后会进入审批,返回 status: "awaiting_approval" 和一个 preview_result。我们确认数据没问题后输入:
bdata scraper approve c_mpohus372o5tmid1jk
关键点:Collector ID 不变。所有下游触发器、定时任务、集成代码零改动继续工作。如果是无人值守场景,可以加 --auto-approve 跳过审批直接上线。

方案对比

|
维度 |
Agent 裸写选择器 |
Agent + 裸浏览器(Puppeteer) |
Agent + Bright Data CLI |
|
输出格式 |
依赖 Agent 解析 HTML |
整页 HTML,Agent 需自行提取 |
结构化 JSON,带 schema |
|
反封锁能力 |
无 |
无 |
住宅代理 + JS 渲染 + CAPTCHA 处理 |
|
网站改版 |
手动修选择器 |
手动修脚本 |
一条 |
|
基础设施维护 |
自己管 |
自己管代理和浏览器 |
Bright Data 托管 |
|
合规 |
自行负责 |
自行负责 |
SOC 2 Type II、ISO 27001、GDPR、CCPA |
|
成本 |
仅 Agent 调用费 |
Agent 费 + 代理费 + 带宽费 |
每月 5,000 次免费,超出后 $1.50/千次 |
不想自己维护代理、IP rotation 和 CAPTCHA 处理?
根据你的采集场景选择 Web Unlocker、Browser API 或 Web Scraper API,把基础设施交给 Bright Data,Agent 专注于数据处理和业务逻辑。
产品选择推荐
|
场景 |
推荐方案 |
|
AI Agent 需要实时访问网页 |
Bright Data MCP |
|
快速创建结构化 scraper |
Scraper Studio / Web Scraper API |
|
JS-heavy、多步骤浏览器操作 |
Browser API |
|
需要处理反爬并返回网页内容 |
Web Unlocker |
|
搜索 Google/Bing/Yandex 等结果页 |
SERP API |
特别注意:产品资料明确指出,Google SERP 不应该使用 Residential/DC/ISP proxies,而应使用 SERP API。
合规说明
这一点非常重要。如果我们的爬虫数据要接入生产环境,合规性是必须考虑的。Bright Data 的合规状态如下:
- SOC 2 Type II:有报告,可签 NDA 获取
- ISO 27001:已认证
- GDPR:已进行数据隐私影响评估(DPIA),作为产品流程的一部分
- CCPA:合规
- 数据范围:仅采集公开数据,不涉及登录/身份验证后的内容
以上信息来自 Bright Data 官方安全与合规章程。
FAQ
Q1:Bright Data CLI 的免费额度具体能干什么?
每个新账号自动获得每月 5,000 次免费 credits(约 $7.50 价值),无需信用卡、无需优惠码。额度在 Web Unlocker API、SERP API、Web Scraper API 和 Scraper Studio 之间共享,每月 1 号自动续期。1 credit = 1 次请求。
Q2:Claude Code 接国产模型(如火山引擎 doubao)能不能配合 Bright Data CLI?
可以。Bright Data CLI 是独立的终端工具,和 Claude Code 背后用什么模型无关。我在 Mac 上用 Claude Code 接火山引擎方舟的 doubao-seed-2.0-mini,配置 ANTHROPIC_BASE_URL 指向 ark.cn-beijing.volces.com/api/coding 即可,同时让 Agent 在终端调用 bdata 命令。Agent 的编码和推理能力由模型决定,采集能力由 Bright Data CLI 提供,两者互不影响。
Q3:网站改版后自愈需要多久?会不会影响线上数据?
bdata scraper heal 的处理时间取决于目标页面的复杂度,通常几分钟内完成。在审批门控模式下,旧爬虫在 approve 之前仍然可以运行(只是返回的可能是旧 schema 的数据),approve 后 Collector ID 不变,下游无缝切换。如果用 --auto-approve,则自愈后自动上线,适合无人值守场景。
Q4:Collector ID 是什么?为什么要复用它?
Collector ID 是 c_ 开头的字符串(如 c_mpohus372o5tmid1jk),是每个爬虫的唯一标识。复用它的好处是:不需要每次重新创建爬虫,下游代码不需要改任何引用,自愈后 ID 也不变。把它写进 CLAUDE.md 或 .cursor/rules,Agent 就能跨会话记住这个爬虫配置。
Q5:MCP 集成和直接用 CLI 有什么区别?
CLI 方式是 Agent 在终端执行 bdata 命令,拿到 JSON 结果后再处理。通过 brightdata skill add bright-data-mcp 安装的 MCP 技能则是把 Bright Data 的工具直接注入 Agent 的工具集,Agent 可以更自然地选择和调用。MCP 集成更紧密,但 CLI 方式更灵活、更透明,适合需要精细控制的场景。两者可以同时使用。
开始你的第一个 AI Web Scraping 项目
如果你的目标只是验证一个网站能不能稳定采集,不需要先搭完整的爬虫基础设施。先创建一个 scraper,拿到结构化 JSON,再决定是否接入 Claude Code、MCP 或现有的数据管道。
更多推荐

所有评论(0)