关于 scrape
使用 Bright Data CLI 获取 URL 内容的 Skill,可输出 Markdown、HTML、JSON 或截图。支持单个 URL 与批量处理,并将特定平台的数据请求转交给其他 Skill。
主要功能
- 01以多种格式获取 URL 内容
- 02处理单个 URL 和 URL 批次
- 03支持分页列表抓取
- 04验证输出并识别拦截页面
- 05将平台数据请求转交 data-feeds
适用场景
- 01将文章提取为 Markdown
- 02获取 URL 的 HTML 或 JSON
- 03处理分页列表
- 04检查抓取结果是否为拦截页面
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ brightdata/ skills --skill scrape安装后在 Claude Code 中输入/scrape确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/examples.mdflags.mdpatterns.md详细介绍
Bright Data — 抓取
通过 Bright Data CLI 从一个或多个 URL 获取干净的内容(markdown、HTML、JSON、截图)。此技能负责“获取原始或经过轻度结构化的内容”。对于特定平台的结构化数据(Amazon、LinkedIn、TikTok 等),请停止并改用 data-feeds——这样你就能获得干净的 JSON,无需编写选择器逻辑。
设置检查(先运行)
开始任何抓取前,请确认 CLI 已安装并完成身份验证:
if ! command -v bdata >/dev/null 2>&1; then
echo "bdata CLI not installed — see bright-data-best-practices/references/cli-setup.md"
elif ! bdata zones >/dev/null 2>&1; then
echo "bdata not authenticated — run: bdata login (or: bdata login --device for SSH)"
fi
如果任一检查失败,请停止操作,并引导用户查看 skills/bright-data-best-practices/references/cli-setup.md。不要擅自尝试旧版 curl 备用方案——应先询问用户。
选择路径
| 情况 | 操作 |
|---|---|
| 单个 URL | bdata scrape <url> -f markdown |
| 较短列表(≤ 约 20 个 URL) | 使用 shell 循环,每次处理 1 个(参见 references/patterns.md) |
| 较长列表(数十个以上) | 使用 xargs -P 4 并限制并行度(参见 references/patterns.md) |
| 分页列表 | 抓取第 1 页 → 提取下一页 URL → 追加 → 重复(参见 references/examples.md) |
| JS 密集型/需要登录/需要交互 | 升级到 bdata browser(参见 brightdata-cli 技能) |
| Amazon、LinkedIn、TikTok、Instagram、YouTube、Reddit 等 | 停止——转交给 data-feeds |
| 还没有 URL,只有主题 | 转交给 search |
操作
核心命令:
# Clean markdown (default)
bdata scrape "https://example.com/article" -f markdown -o article.md
# Raw HTML (when you need the DOM)
bdata scrape "https://example.com" -f html -o page.html
# Structured JSON (when the Unlocker returns parsed fields)
bdata scrape "https://example.com" -f json --pretty -o page.json
# Visual snapshot (saves PNG)
bdata scrape "https://example.com" -f screenshot -o page.png
# Geo-targeted (override the exit country)
bdata scrape "https://example.com" --country de -f markdown
完整的标志参考: references/flags.md。
验证检查(声明成功前运行)
- **输出非空:**运行
test -s "$out_path";若输出到 stdout,则内容至少应有 200 字节。 - 不是拦截页面——使用 grep 检查输出中是否包含以下任一特征(不区分大小写):
Access DeniedJust a momentAttention RequiredChecking your browsercaptchacf-browser-verificationcloudflare(正文总计小于 2KB)
- 包含预期标记:根据任务检查,例如,商品页面应包含价格格式(
\$\d);文章应至少包含一个<h1>或#标题。 - 失败时的升级步骤:
- 使用其他
--country重试(例如,来源网站位于美国时使用--country de) - 升级到
bdata browser,进行完整的 JS 渲染(转交给brightdata-cli技能)
- 使用其他
通过以上所有检查后,才能报告成功。
危险信号
- 未检查输出就声称成功。
- 使用
2>/dev/null隐藏错误——这样会漏掉身份验证失败和速率限制错误。 - 对 Amazon/LinkedIn/TikTok/Instagram/YouTube/Reddit URL 运行
bdata scrape——data-feeds支持这些平台,并会直接返回结构化数据。抓取会丢失结构。 - 在同一任务中重复抓取同一个 URL——缓存首次结果。
- 对较长列表依次运行
bdata scrape,而不使用xargs -P 4(或类似方式)限制并行度。 - 直接对
api.brightdata.com使用curl——这是旧版方式;仅在 CLI 不可用时使用。
参考资料
references/flags.md— 每个标志及其使用说明。references/patterns.md— shell 循环批处理、xargs并行处理、分页流程、重试/退避、拦截页面恢复流程、旧版curl备用方案。references/examples.md— (1) 单页 → markdown;(2) 对 URL 列表进行批处理并限制并行度;(3) 分页列表;(4) 拦截页面恢复。
评论
支持 Markdown