Full pipeline for building web scraping systems with agent team collaboration. Use this skill for requests like 'build a web scraper', 'develop a crawler', 'collect site data', 'web crawling system', 'build a scraper', 'data collection automation', 'site parsing', 'web data extraction', etc. Also supports target-analysis-only mode for specific site analysis. Note: real-time streaming data processing (Kafka/Flink), browser automation testing (Selenium testing), and website performance monitori...
Scanned 5/29/2026
Install via CLI
openskills install sideprojectmate/sideProjectMate---
name: web-scraper
description: "Full pipeline for building web scraping systems with agent team collaboration. Use this skill for requests like 'build a web scraper', 'develop a crawler', 'collect site data', 'web crawling system', 'build a scraper', 'data collection automation', 'site parsing', 'web data extraction', etc. Also supports target-analysis-only mode for specific site analysis. Note: real-time streaming data processing (Kafka/Flink), browser automation testing (Selenium testing), and website performance monitoring are outside the scope of this skill."
---
# Web Scraper — Web Scraping System Construction Pipeline
An agent team collaborates to build target analysis, crawler design, parsing, storage, and monitoring for web scraping systems.
## Execution Mode
**Agent Team** — Five agents communicate directly via SendMessage and perform cross-validation.
## Agent Composition
| Agent | File | Role | Type |
|-------|------|------|------|
| target-analyst | `.claude/agents/target-analyst.md` | Target site analysis, risk assessment | general-purpose |
| crawler-developer | `.claude/agents/crawler-developer.md` | Crawler architecture and implementation | general-purpose |
| parser-engineer | `.claude/agents/parser-engineer.md` | Parsing logic design and implementation | general-purpose |
| data-manager | `.claude/agents/data-manager.md` | Data storage, validation, export | general-purpose |
| monitor-operator | `.claude/agents/monitor-operator.md` | Monitoring, alerting, scheduling | general-purpose |
## Workflow
### Phase 1: Preparation (performed directly by the orchestrator)
1. Extract the following from user input:
- **Target site URL**: Website to scrape
- **Target data**: What data to extract
- **Purpose**: Intended use of collected data (analysis/monitoring/archiving)
- **Scale**: Expected data volume, collection frequency
- **Constraints** (optional): Tech stack limitations, budget, legal requirements
2. Create the `_workspace/` directory at the project root
3. Organize the input and save it to `_workspace/00_input.md`
4. Create the `_workspace/src/` directory
5. If pre-existing files are available, copy them to `_workspace/` and skip the corresponding phase
6. **Determine the execution mode** based on the scope of the request (see "Execution Modes" below)
### Phase 2: Team Assembly and Execution
Assemble the team and assign tasks. Inter-task dependencies are as follows:
| Order | Task | Owner | Dependencies | Deliverable |
|-------|------|-------|-------------|-------------|
| 1 | Target site analysis | analyst | None | `_workspace/01_target_analysis.md` |
| 2a | Crawler design and implementation | crawler | Task 1 | `_workspace/02_crawler_design.md` + `src/` |
| 2b | Parsing logic design and implementation | parser | Task 1 | `_workspace/03_parser_logic.md` + `src/` |
| 3 | Data storage design | data-mgr | Task 2b | `_workspace/04_data_storage.md` + `src/` |
| 4 | Monitoring configuration | monitor | Tasks 2a, 2b, 3 | `_workspace/05_monitor_config.md` + `src/` |
Tasks 2a (crawler) and 2b (parser) run **in parallel** since both depend only on Task 1 (analysis).
**Inter-agent communication flow:**
- analyst completes > passes URL patterns, anti-bot info, rate limits to crawler; data points and DOM structure to parser
- crawler completes > passes raw data format to parser; crawler health checkpoints to monitor
- parser completes > passes data schema to data-mgr; parsing metrics to monitor
- data-mgr completes > passes data quality metrics to monitor
- monitor integrates all components to finalize operations configuration
### Phase 3: Integration and Final Deliverables
1. Verify all files in `_workspace/` and `_workspace/src/`
2. Validate cross-deliverable consistency (analysis > crawler > parser > storage > monitoring)
3. Present the final summary and execution instructions to the user
## Execution Modes by Request Scope
| User Request Pattern | Execution Mode | Agents Deployed |
|---------------------|---------------|----------------|
| "Build a full scraping system" | **Full pipeline** | All 5 agents |
| "Analyze target site only" | **Analysis mode** | target-analyst only |
| "Build crawler only" | **Crawler mode** | target-analyst + crawler-developer |
| "Design parser only" | **Parser mode** | target-analyst + parser-engineer |
| "Monitor existing scraper" | **Monitor mode** | monitor-operator only |
**Reusing existing files**: If the user provides existing analysis results or crawler code, copy to `_workspace/` and skip the corresponding agent.
## Data Transfer Protocol
| Strategy | Method | Purpose |
|----------|--------|---------|
| File-based | `_workspace/` directory | Design documents |
| Code-based | `_workspace/src/` | Executable scraping code |
| Message-based | SendMessage | Key information transfer, feedback |
## Error Handling
| Error Type | Strategy |
|-----------|----------|
| Target site inaccessible | Analyze via cached/archived versions; explore alternative URLs |
| robots.txt blocks all crawling | Check for public API; propose API-based approach |
| Anti-bot blocks all requests | Escalate difficulty; propose headless browser or API alternatives |
| Dynamic rendering failure | Switch to Playwright; increase timeouts |
| Agent failure | Retry once; if still failing, proceed without that deliverable |
## Test Scenarios
### Normal Flow
**Prompt**: "Build a scraper to collect product prices from this e-commerce site daily"
**Expected result**:
- Analysis: Site structure, pagination, anti-bot mechanisms, robots.txt compliance plan
- Crawler: Async httpx-based crawler with rate limiting and retry logic
- Parser: CSS selector-based price/title/URL extraction with validation
- Storage: SQLite with upsert deduplication, CSV daily export
- Monitoring: Cron schedule, parsing success rate alerts, site change detection
### Analysis-Only Flow
**Prompt**: "Analyze whether this site can be scraped"
**Expected result**:
- target-analyst performs full analysis and risk assessment
- Other agents are not deployed
### Error Flow
**Prompt**: "Scrape data from this SPA with Cloudflare protection"
**Expected result**:
- target-analyst identifies Cloudflare challenge and SPA rendering
- crawler-developer uses Playwright with appropriate wait strategies
- parser-engineer handles dynamic DOM with robust selectors
- monitor-operator sets up change detection for frequently updated selectors
## Agent Extension Skills
| Skill | Path | Enhanced Agent | Role |
|-------|------|---------------|------|
| selector-generator | `.claude/skills/selector-generator/skill.md` | parser-engineer | CSS/XPath selector generation, robustness scoring, change detection |
| anti-bot-analyzer | `.claude/skills/anti-bot-analyzer/skill.md` | target-analyst, crawler-developer | Anti-bot defense layer analysis, rate limit detection, legal risk assessment |
No comments yet. Be the first to comment!