| 使用 scrapling 进行网页抓取和数据提取。根据目标网站特征自动选择最佳 Fetcher, (1) 抓取/爬取网页内容或数据(scrape, crawl, fetch page, extract data) (2) 需要绕过 Cloudflare/WAF 等反爬保护 (3) 登录后抓取受保护页面 (4) 解析已有 HTML 提取结构化数据 (5) 用户提供 URL 并要求获取页面内容或特定元素 (6) 批量采集多个页面
npx skills add https://github.com/Cedriccmh/claude-code-skill-scrapling --skill scrapling
python -c "import scrapling; print(scrapling.__version__)"
按项目使用的包管理器执行(pip / uv 等价命令见 references/maintenance.md):
scrapling[fetchers] + scrapling install> 项目根存在 uv.lock 或 pyproject.toml 含 [tool.uv],优先用 uv(uv add / uv run scrapling install);否则用 pip。
先查阅 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 脚本。
目标网站 →
│
├─ 已有 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 官方文档补充。
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
--ai-targeted。references/cookie-vault.md,只写本地 references/cookie-vault.local.md,且必须先获用户授权。references/site-patterns.md,只写本地 references/site-patterns.local.md。robots_txt_obey = True。| 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/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 等高级能力时查阅 |
Automate web scraping and data extraction with Apify -- run Actors, manage datasets, create reusable tasks, and retrieve crawl results through the Composio Apify integration.
Scrapes content based on a preset URL list, filters high-quality technical information, and generates daily Markdown reports.
Web search, content extraction, crawling, and research capabilities using Tavily API
| Bulk extract content from an entire website or site section. Use this skill when the user wants to crawl a site, extract all pages from a docs section, bulk-scrape multiple pages following links, or says "crawl", "get all the pages", "extract everything under /docs", "bulk extract", or needs content from many pages on the same site. Handles depth limits, path filtering, and concurrent extraction.
Deep web scraping, screenshots, PDF parsing, and website crawling using Firecrawl API. Use when you need deep content extraction from web pages, page interaction is required (clicking, scrolling, etc.), or you want screenshots or PDF parsing.
Build a fully automated AI-powered data collection agent for any public source — job boards, prices, news, GitHub, sports, anything. Scrapes on a schedule, enriches data with a free LLM (Gemini Flash), stores results in Notion/Sheets/Supabase, and learns from user feedback. Runs 100% free on GitHub Actions. Use when the user wants to monitor, collect, or track any public data automatically.
Scrapes content based on a preset URL list, filters high-quality technical information, and generates daily Markdown reports.
Scrape, crawl, search, and extract structured data from websites using Firecrawl API - converts web pages to LLM-ready markdown
Take cedriccmh/scrapling from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.