Skip to content
Back to skills

Scrapling

ASecurity

使用 scrapling 进行网页抓取和数据提取。自动选择 Fetcher,支持 Cloudflare/WAF 绕过、Session 登录、HTML 解析。当用户提到 scrape/crawl/fetch page/extract data/爬取/抓取/绕过Cloudflare/解析HTML/批量采集 时触发。

  • 5,905 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 28, 2026
ai-agentsbashreactvueapi

Works with

  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 10 files and shows the line behind each finding

Scanned May 28, 2026

npx -y skills add fengshao1227/ccg-workflow --skill scrapling --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Scrapling?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Scrapling
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/fengshao1227-scrapling/badge)](https://www.skillsdirectory.com/skills/fengshao1227-scrapling)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: scrapling
description: "使用 scrapling 进行网页抓取和数据提取。自动选择 Fetcher,支持 Cloudflare/WAF 绕过、Session 登录、HTML 解析。当用户提到 scrape/crawl/fetch page/extract data/爬取/抓取/绕过Cloudflare/解析HTML/批量采集 时触发。"
user-invocable: true
allowed-tools: Read, Bash
argument-hint: "[URL or scraping task description]"
license: MIT
---

# Scrapling 网页抓取 Skill

## 步骤 0:检查版本

```bash
pip show scrapling
```

- 未安装 → 执行 `pip install "scrapling[fetchers]"` + `scrapling install`
- 有新版 → 执行 `pip install --upgrade "scrapling[fetchers]"` → 查 changelog 告知用户
- 已最新 → 继续

## 步骤 1:选择 Fetcher

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

## 步骤 2:执行工作流

```
1. 检查版本(步骤 0)
2. 查阅 references/site-patterns.md — 匹配已有模式则直接复用
3. 无匹配 → 用决策树选择 Fetcher
4. 读取对应模板 → 替换参数 → 生成完整脚本
5. 执行脚本 → 返回结果
6. **沉淀经验(必做)**:
   - 新站点 → 追加到 site-patterns.md
   - 新 cookie / 用户提供了 cookie → 保存到 cookie-vault.md
   - **完成抓取后必须检查**:是否有新的 cookie 或 site pattern 需要保存
```

## 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/site-patterns.md` | **每次抓取前先查阅** — 检查目标站点是否有已记录的模式 |
| `references/api-quick-ref.md` | 生成脚本时查阅 — Fetcher/Selector 方法签名和参数 |
| `references/troubleshooting.md` | 执行报错时查阅 — 按错误信息查找原因和解决方案 |
| `references/cookie-vault.md` | 需要登录 cookie 时查阅 — 检查是否有历史记录可复用 |
| `references/maintenance.md` | 安装/升级/依赖问题时查阅 — 安装层级和验证命令 |

Files in this skill

  • SKILL.md3.7 KB
  • references/api-quick-ref.md3.4 KB
  • references/cookie-vault.md1.4 KB
  • references/maintenance.md2.4 KB
  • references/site-patterns.md3.3 KB
  • references/troubleshooting.md3.1 KB
  • templates/basic_fetch.py527 B
  • templates/parse_only.py488 B
  • templates/session_login.py717 B
  • templates/stealth_cloudflare.py677 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…