📦 Bright Data Best Practices — Bright Data 最佳实践
v1.0.0构建可直接用于生产的 Bright Data 集成,内置最佳实践。为使用编程助手(Claude Code、Cu...)的开发者提供参考文档。
详细分析 ▾
运行时依赖
安装命令
点击复制技能文档
CLI 设置参考 安装、认证与故障排查的权威文档统一在 → references/cli-setup.md;任何调用 bdata 的任务前请先查阅。
Bright Data APIs Bright Data 提供大规模网页数据提取基础设施。四大核心 API 覆盖不同场景——永远选最专精的工具。
如何选 API 用例 | API | 理由 按 URL 抓取任意网页(无交互) | Web Unlocker | HTTP 型,自动绕过反爬,最便宜 Google / Bing / Yandex 搜索结果 | SERP API | 专为 SERP 设计,返回结构化数据 Amazon、LinkedIn、Instagram、TikTok 等结构化数据 | Web Scraper API | 预置解析器,无需手写解析 点击、滚动、填表、执行 JS、拦截 XHR | Browser API | 完整浏览器自动化,支持 Puppeteer / Playwright / Selenium
认证模式(所有 API 通用) 以下环境变量用于直接 REST 集成;若用 bdata CLI,执行 bdata login 会自动处理(见 references/cli-setup.md)。 export BRIGHTDATA_API_KEY="your-api-key" # 控制面板 > 账户设置 export BRIGHTDATA_UNLOCKER_ZONE="zone-name" # Web Unlocker 区域名 export BRIGHTDATA_SERP_ZONE="serp-zone-name" # SERP API 区域名 export BROWSER_AUTH="brd-customer-ID-zone-NAME:PASSWORD" # Browser API 凭证
Web Unlocker & SERP API 请求头: Authorization: Bearer YOUR_API_KEY
Web Unlocker API HTTP 型抓取代理,最适合无浏览器交互的简单页面获取。 Endpoint: POST https://api.brightdata.com/request
示例: import requests response = requests.post( "https://api.brightdata.com/request", headers={"Authorization": f"Bearer {API_KEY}"}, json={ "zone": "YOUR_ZONE_NAME", "url": "https://example.com/product/123", "format": "raw" } ) html = response.text
关键参数 zone: 区域名(必填) url: 目标 URL,需含 http:// 或 https://(必填) format: "raw"(HTML) 或 "json"(结构化包装)(必填) method: HTTP 方法,默认 "GET" country: 2 位 ISO 国家码,如 "us"、"de" data_format: 转换输出,"markdown" 或 "screenshot" async: true 启用异步模式
速用模式 # 获取 markdown(适合喂给 LLM) json={"zone": ZONE, "url": url, "format": "raw", "data_format": "markdown"}
# 德国定位 json={"zone": ZONE, "url": url, "format": "raw", "country": "de"}
# 截图调试 json={"zone": ZONE, "url": url, "format": "raw", "data_format": "screenshot"}
# 异步批量 json={"zone": ZONE, "url": url, "format": "raw", "async": True}
铁律:禁止将 Web Unlocker 与 Puppeteer、Playwright、Selenium 或任何反检测浏览器混用;请改用 Browser API。 完整参考见 references/web-unlocker.md(含代理接口、特殊头、异步流程、功能、计费)。
SERP API 结构化提取 Google、Bing、Yandex、DuckDuckGo 搜索结果。 Endpoint: POST https://api.brightdata.com/request(同 Web Unlocker)
示例: response = requests.post( "https://api.brightdata.com/request", headers={"Authorization": f"Bearer {API_KEY}"}, json={ "zone": "YOUR_SERP_ZONE", "url": "https://www.google.com/search?q=python+web+scraping&brd_json=1&gl=us&hl=en", "format": "raw" } ) data = response.json() for result in data.get("organic", []): print(result["rank"], result["title"], result["link"])
Google 关键参数 q: 查询词,如 q=python+web+scraping brd_json: 返回解析 JSON,固定 brd_json=1(数据管道必带) gl: 国家,如 gl=us hl: 语言,如 hl=en start: 翻页偏移,start=10(第 2 页) tbm: 搜索类型,tbm=nws(新闻)/isch(图片)/vid(视频) brd_mobile: 设备,brd_mobile=1 或 ios brd_browser: 浏览器,如 chrome brd_ai_overview: 触发 AI 摘要,brd_ai_overview=2 uule: 编码后的精确地理位置
注:num 参数已于 2025 年 9 月废弃,翻页请用 start。
解析后 JSON 结构 { "organic": [{"rank":1,"global_rank":1,"title":"...","link":"...","description":"..."}], "paid":[], "people_also_ask":[], "knowledge_graph":{}, "related_searches":[], "general":{"results_cnt":1240000000,"query":"..."} }
Bing 关键参数 q: 查询词 setLang: 语言(建议 4 位,如 en-US) cc: 国家码 first: 翻页(步长 10:1,11,21…) safesearch: off / moderate / strict brd_mobile: 设备类型
异步批量 SERP # 提交