跳到主要内容
知仓学习社ZHICANG

universal-scraping-architect

Use for web scraping, crawling, document extraction, API parsing, or building validation-heavy data pipelines using Firecrawl or local Python scripts.

读凭据写文件联网读文件严重 0 · 高危 2alirezarezvani/claude-skills

它会碰到什么

扫了多少8 个文本文件,31 KB
它会碰到什么读凭据写文件联网读文件
命中总数10 处
命中统计严重 0 · 高 2 · 中 6 · 低 2
逐条看命中(2 条严重或高危)
  • scripts/firecrawl_example.py:20cred-envread
    $env:FIRECRAWL_API_KEY = "fc-YOUR_KEY_HERE"     # Windows PowerShell
  • scripts/firecrawl_example.py:60cred-envread
    api_key = os.getenv(FIRECRAWL_API_KEY_ENV)

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

Universal Scraping Architect

Design complete, robust data-extraction pipelines with intelligent routing, validation, and token-budget tracking — not brittle one-off scripts.

Dependency Notice: BYOK (Bring Your Own Key) pattern for Firecrawl; API keys must only be loaded via environment variables. Per-script dependencies:

| Script | Dependencies | Exact CLI |

|---|---|---|

| scripts/validate_extraction.py | stdlib only | python3 scripts/validate_extraction.py output.json --json |

| scripts/firecrawl_example.py | firecrawl, requests (template; --sample runs offline) | python3 scripts/firecrawl_example.py --sample |

| scripts/local_bs4_example.py | beautifulsoup4, pandas (template; --sample runs offline) | python3 scripts/local_bs4_example.py --sample |

Before Starting

Check for context first:

If project-context.md exists, read it before asking questions. Determine the target data format, scale of extraction, and deployment environment before writing any code.

How This Skill Works

This skill supports 3 extraction modes based on intelligent routing:

Mode 1: API-Driven (Firecrawl)

Use when the source is a public URL, heavily dynamic (JS/SPA), requires search-first discovery, or involves bulk crawling across a domain.

Mode 2: Local Python (Traditional)

Use when extracting from local files (PDF, Excel, CSV), the data is private/sensitive, or the target is a simple static HTML page where Firecrawl is overkill.

Mode 3: Hybrid Pipeline

Use when Firecrawl handles URL discovery/web extraction, but local Python (Pandas) is required to clean, normalize, and structure the output before saving.

The Extraction Pipeline

When executing a scraping task, always follow this sequence:

  1. Route the Approach: Explicitly state whether Firecrawl or Local Python is being used and why.
  2. Track Budgets: Estimate Firecrawl API quotas or LLM token context limits before executing large jobs.
  3. Extract Safely: Implement checkpointing for multi-page jobs. Handle pagination and dynamic layouts gracefully. Start from the editable runner templates — scripts/firecrawl_example.py (Mode 1) or scripts/local_bs4_example.py (Mode 2); run each with --sample first to see the expected summary shape without network access.
  4. Validate & Clean: Run python3 scripts/validate_extraction.py extracted_output.json --json on every extraction result before delivering it. It exits 0 only on {"status": "ok"}; warning (empty output) or error (malformed JSON) exit 1 — fix and re-extract, never ship unvalidated data. Beyond this structural gate, also check required fields and duplicates against the pipeline spec before delivering.
  5. Format: Default to CSV for tabular data, JSON for nested structures, and Markdown for clean text.

Proactive Triggers

Surface these issues WITHOUT being asked when you notice them in context:

  • Hardcoded API Keys → Flag immediately and rewrite to use os.getenv('FIRECRAWL_API_KEY').
  • Private Data Leakage → If the user asks to send local, sensitive files to an external API, flag the privacy risk and suggest Mode 2 (Local Python).
  • Missing Pagination → If the target implies hundreds of records but no pagination logic is requested, flag it and add checkpointing.

Output Artifacts

| When you ask for... | You get... |

|---------------------|------------|

| "Scrape this site" | A fully validated Python extraction script with routing logic and error handling. |

| "Get data from this table" | A clean CSV/JSON dataset with a summary log of row counts and empty values. |

| "Crawl these docs" | A Markdown deliverable chunked for LLM token limits. |

Anti-Patterns

  • Brittle Selectors: Never use highly nested CSS selectors (e.g., div > span > ul > li:nth-child(3)). Use data attributes or robust structural anchors.
  • Ignoring Etiquette: Never scrape without checking robots.txt or implementing sensible rate limits.
  • No Validation: Never blindly write scraped data to a file without checking if the array is empty or missing critical keys.

Related Skills

  • data-cleaning: Use when the scraped data requires complex statistical normalization or deduplication.
  • browser-automation: Use for highly interactive scraping requiring user emulation (clicks, logins) where Firecrawl is insufficient.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 26,030
本站分层T1
该仓技能数846
原文件路径engineering/universal-scraping-architect/skills/universal-scraping-architect/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 846 个技能

同名技能的其他版本

有 2 个不同仓库或目录里都有叫 universal-scraping-architect 的技能。它们内容并不相同,别混用: