# Scrapling

> |

- **Type:** Skill
- **Install:** `agentstack add skill-cedriccmh-claude-code-skill-scrapling-claude-code-skill-scrapling`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Cedriccmh](https://agentstack.voostack.com/s/cedriccmh)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Cedriccmh](https://github.com/Cedriccmh)
- **Source:** https://github.com/Cedriccmh/claude-code-skill-scrapling

## Install

```sh
agentstack add skill-cedriccmh-claude-code-skill-scrapling-claude-code-skill-scrapling
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Scrapling 网页抓取 Skill

## 步骤 0：检查版本

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

按项目使用的包管理器执行（pip / uv 等价命令见 `references/maintenance.md`）：

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

> 项目根存在 `uv.lock` 或 `pyproject.toml` 含 `[tool.uv]`，优先用 `uv`（`uv 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`：

```bash
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 等高级能力时查阅 |

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Cedriccmh](https://github.com/Cedriccmh)
- **Source:** [Cedriccmh/claude-code-skill-scrapling](https://github.com/Cedriccmh/claude-code-skill-scrapling)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-cedriccmh-claude-code-skill-scrapling-claude-code-skill-scrapling
- Seller: https://agentstack.voostack.com/s/cedriccmh
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
