scrapling

GitHub

提供网页抓取与数据提取技能,支持自动选择Fetcher、绕过反爬及登录场景。涵盖版本检查、安全预检、决策树选型及Cookie管理,确保合规采集并沉淀站点经验。

Trigger Scenarios

抓取/爬取网页内容或数据 需要绕过Cloudflare/WAF等反爬保护 登录后抓取受保护页面 解析已有HTML提取结构化数据 用户提供URL并要求获取页面内容或特定元素 批量采集多个页面

Install

npx skills add Cedriccmh/claude-code-skill-scrapling --skill scrapling -g -y
More Options

Use without installing

npx skills use Cedriccmh/claude-code-skill-scrapling@scrapling

指定 Agent (Claude Code)

npx skills add Cedriccmh/claude-code-skill-scrapling --skill scrapling -a claude-code -g -y

安装 repo 全部 skill

npx skills add Cedriccmh/claude-code-skill-scrapling --all -g -y

预览 repo 内 skill

npx skills add Cedriccmh/claude-code-skill-scrapling --list

SKILL.md

Frontmatter
{
    "name": "scrapling",
    "description": "使用 scrapling 进行网页抓取和数据提取。根据目标网站特征自动选择最佳 Fetcher,\n生成并执行 Python 脚本完成任务。Use when:\n(1) 抓取\/爬取网页内容或数据(scrape, crawl, fetch page, extract data)\n(2) 需要绕过 Cloudflare\/WAF 等反爬保护\n(3) 登录后抓取受保护页面\n(4) 解析已有 HTML 提取结构化数据\n(5) 用户提供 URL 并要求获取页面内容或特定元素\n(6) 批量采集多个页面\n",
    "allowed-tools": "Bash(python*), Bash(pip*), Bash(uv*), Bash(scrapling*)"
}

Scrapling 网页抓取 Skill

步骤 0:检查版本

python -c "import scrapling; print(scrapling.__version__)"

按项目使用的包管理器执行(pip / uv 等价命令见 references/maintenance.md):

  • 未安装 → 安装 scrapling[fetchers] + scrapling install
  • 有新版 → 升级 → 查 changelog 告知用户
  • 已最新 → 继续

项目根存在 uv.lockpyproject.toml[tool.uv],优先用 uvuv add / uv run scrapling install);否则用 pip

步骤 1:安全预检与 quick path

先查阅 references/security.md,确认授权、robots.txt / ToS、Prompt injection、cookie 保存与 redaction 边界。

简单文本 / Markdown / selector 抽取优先用 Scrapling CLI quick path,并默认加 --ai-targeted

scrapling extract get "https://example.com/article" article.md --ai-targeted
scrapling extract fetch "https://example.com/app" app.md --ai-targeted --network-idle
scrapling extract stealthy-fetch "https://protected.example.com" page.md --ai-targeted --solve-cloudflare

CLI 无法满足复杂登录、多页流程、结构化字段或复用代码时,再生成 Python 脚本。

步骤 2:选择 Fetcher

目标网站 →
│
├─ 已有 HTML 字符串/文件,只需解析?
│   → Selector(纯解析,无网络请求)
│   → 模板: parse_only.py
│
├─ 静态页面,无 JS 渲染,无反爬?
│   → Fetcher(最快,基于 curl_cffi)
│   → 模板: basic_fetch.py
│
├─ 需要登录(HTTP 表单,非 JS 登录)?
│   → FetcherSession(保持会话 cookie)
│   → 模板: session_login.py
│
├─ 有 Cloudflare / WAF 保护?
│   → StealthyFetcher(Camoufox 浏览器,自动过 CF)
│   → 模板: stealth_cloudflare.py
│
├─ SPA 应用(React/Vue),需要 JS 渲染?
│   → DynamicFetcher(Playwright 浏览器)
│   → 基于模板即时生成
│
└─ 不确定?
    → 先用 Fetcher 试,403/空内容 → 升级到 StealthyFetcher

复杂 crawl / Spider / adaptive scraping / MCP / proxy rotation 等高级能力,不在本轻量 skill 内展开;先查 references/upstream-map.md,再按 upstream 官方文档补充。

步骤 3:执行工作流

1. 检查版本(步骤 0)
2. 安全预检(步骤 1)
3. 查阅 references/site-patterns.md;如果存在 references/site-patterns.local.md,也先查本地 overlay
4. 简单抽取 → 优先 CLI quick path + --ai-targeted
5. 复杂流程 → 用决策树选择 Fetcher,读取对应模板,替换参数,生成完整脚本
6. 执行脚本 / CLI → 返回最小必要结果
7. **沉淀经验(必做)**:
   - 新通用站点类型 → 去敏感化后追加到 references/site-patterns.md
   - 私有站点 / 公司站点 / 登录态细节 → 追加到 references/site-patterns.local.md(不提交)
   - 用户明确授权保存真实 cookie → 保存到 references/cookie-vault.local.md(不提交,必须 redact 输出)
   - **完成抓取后必须检查**:是否有新的 cookie 或 site pattern 需要保存,以及是否属于 local overlay

Guardrails

  • 只抓取用户有权访问或明确授权的内容;不要绕过 paywall、验证码、登录限制或访问控制来获取未授权内容。
  • 输出给 agent / LLM 的网页内容默认先清洗、限域或结构化;CLI 输出默认使用 --ai-targeted
  • 真实 cookie / token 不写入 references/cookie-vault.md,只写本地 references/cookie-vault.local.md,且必须先获用户授权。
  • 公司 / 私有站点经验不写公共 references/site-patterns.md,只写本地 references/site-patterns.local.md
  • 大规模 crawl 前先查 robots.txt / ToS,降低并发并加 delay;Spider 场景查 upstream 后优先使用 robots_txt_obey = True

Cookie 格式速查

Fetcher 类型 Cookie 格式 示例
Fetcher / FetcherSession dict {'name': 'value', 'token': 'abc'}
StealthyFetcher / DynamicFetcher list[dict] [{'name': 'n', 'value': 'v', 'domain': '.site.com', 'path': '/'}]

浏览器 Fetcher cookie 必填字段: name, value, domain, path

超时单位速查

Fetcher 类型 超时单位 示例
Fetcher / FetcherSession timeout=30
StealthyFetcher / DynamicFetcher 毫秒 timeout=60000

模板索引

模板 文件 何时读取
基础 HTTP 抓取 templates/basic_fetch.py 目标为静态页面,无反爬
Cloudflare 绕过 templates/stealth_cloudflare.py 目标有 CF/WAF 保护
Session 登录 templates/session_login.py 需 HTTP 表单登录后抓取
纯 HTML 解析 templates/parse_only.py 已有 HTML 字符串,只需提取数据

References 索引

文件 何时读取
references/security.md 每次抓取前先查阅 — 授权、Prompt injection、cookie / token、site pattern local overlay 规则
references/site-patterns.md 每次抓取前先查阅 — 检查目标站点是否有已记录的模式
references/api-quick-ref.md 生成脚本时查阅 — Fetcher/Selector 方法签名和参数
references/troubleshooting.md 执行报错时查阅 — 按错误信息查找原因和解决方案
references/cookie-vault.md 需要登录 cookie 时查阅 — 只存模板 / 字段名;真实值用 references/cookie-vault.local.md
references/maintenance.md 安装/升级/依赖问题时查阅 — 安装层级和验证命令
references/upstream-map.md 需要 CLI quick path、官方 skill 对齐、Spider / adaptive / MCP / proxy 等高级能力时查阅

Version History

  • 85dd89f Current 2026-07-25 07:24

Metadata

Files
0
Version
85dd89f
Hash
5be2707e
Indexed
2026-07-25 07:24

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-06 15:30
浙ICP备14020137号-1 $Carte des visiteurs$