SKILL.md
readonly只读
name
scrape
description
通过 Bright Data CLI(`bdata scrape`)将网页内容抓取为干净的 Markdown/HTML/JSON。当用户想要获取页面、从 URL 列表中提取内容或爬取分页列表时使用。对于支持的平台(Amazon、LinkedIn、TikTok、Instagram、YouTube、Reddit 等),转交给 `data-feeds`;当需要先发现 URL 时,转交给 `search`。需要 Bright Data CLI;主动引导安装和登录(如果缺失)。
Bright Data — Scrape
通过 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 未安装 — 参见 bright-data-best-practices/references/cli-setup.md"
elif ! bdata zones >/dev/null 2>&1; then
echo "bdata 未认证 — 运行: bdata login (或: bdata login --device 用于 SSH)"
fi
如果任一检查失败,停止并将用户引导至 skills/bright-data-best-practices/references/cli-setup.md。不要静默尝试旧的 curl 回退——先询问用户。
选择路径
| 情况 | 操作 |
|---|---|
| 单个 URL | bdata scrape <url> -f markdown |
| 小列表(≤ ~20 个 URL) | shell 循环,一次一个(参见 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 |
操作
核心命令:
# 干净的 Markdown(默认)
bdata scrape "https://example.com/article" -f markdown -o article.md
# 原始 HTML(当需要 DOM 时)
bdata scrape "https://example.com" -f html -o page.html
# 结构化 JSON(当 Unlocker 返回解析字段时)
bdata scrape "https://example.com" -f json --pretty -o page.json
# 视觉快照(保存 PNG)
bdata scrape "https://example.com" -f screenshot -o page.png
# 地理定位(覆盖出口国家)
bdata scrape "https://example.com" --country de -f markdown
完整标志参考:references/flags.md。
验证检查(在声称成功前运行)
- 非空输出:
test -s "$out_path"— 或者对于标准输出,至少 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(或类似)并限制并行度。 - 直接使用
curl访问api.brightdata.com——旧路径;仅在 CLI 不可用时使用。
参考
references/flags.md— 每个标志及使用时机说明。references/patterns.md— shell 循环批处理、xargs并行、分页配方、重试/退避、拦截页面恢复链、旧版curl回退。references/examples.md— (1) 单页 → Markdown,(2) 批量处理 URL 列表并限制并行度,(3) 分页列表,(4) 拦截页面恢复。






