Навігація курсу: Проєкт: Hermes Agent + MindsDB
Домашнє завдання: міні-pipeline для збору даних із публічного сайту
Basic level
Зробіть дуже маленький pipeline для одного публічного сайту, який реально можна зібрати за один вечір.
У межах цього домашнього завдання worker-html означає простий контейнер або процес, який відкриває сторінку, забирає контент зі звичайного HTML і зберігає результат. Для basic-рівня цього достатньо, бо Crawl4AI вже дає базовий crawl, Markdown output і CSS-based extraction.
worker-js у цій домашці — це окремий worker для сторінок, де контент з’являється лише після JavaScript-rendering. Crawl4AI також показує dynamic content example, але в basic-рівні його реалізовувати не треба. Достатньо коротко пояснити в README.md, коли він був би потрібен.
Що зробити
- Обрати 1 сайт.
- Зібрати 10–15 сторінок.
- Підняти все через Docker Compose.
- Зробити 1
worker-html. - Зберегти
raw+normalizedJSON. - Додати простий logging.
- Написати короткий
README.mdіз запуском.
Мінімальна структура JSON
У JSON достатньо таких полів:
{
"url": "https://example.com/page",
"title": "Example page title",
"fetched_at": "2026-04-28T12:00:00Z",
"source": "example.com",
"content": "Extracted page content",
"links": [
"https://example.com/another-page"
]
}Для цього достатньо стандартних Python-модулів json і logging. Docker Compose зручний саме для запуску кількох сервісів з одного YAML-файлу.
Що здати
- GitHub repo.
compose.yaml.Dockerfile.- 1 parser / worker.
data/raw/.data/normalized/.README.md.- 2–3 приклади JSON-файлів.
- 1 скриншот запуску.
Інструменти, які можна або варто використати
- Crawl4AI — документація: https://docs.crawl4ai.com
- Docker Compose — документація: https://docs.docker.com/compose/
- Python
json— документація: https://docs.python.org/3/library/json.html - Python
logging— документація: https://docs.python.org/3/library/logging.html
Advanced level
Розширте basic-рішення до маленького “флоту”: додайте ще одну задачу або ще один worker, щоб розділити простий HTML-збір і складніший сценарій.
На цьому рівні можна:
- додати справжній
worker-js; - або залишити той самий сайт, але окремо зробити збір
list pageіdetail page.
Якщо хочете scheduler і черги, Celery підходить як distributed task queue з підтримкою scheduling. Для простого monitoring можна додати Prometheus і Grafana: Prometheus зберігає metrics як time series, а Grafana дає dashboards.
Що зробити
- Додати другу задачу, чергу або другий worker.
- Додати простий scheduler.
- Додати structured extraction.
- Створити короткий
CLAUDE.md. - Написати 1 prompt для Claude Code, наприклад: перевірити, чи не зламався parser після зміни DOM.
- Бажано додати 1 просту метрику, наприклад
success_rateабо число помилок.
Claude Code підходить для цього, бо вміє читати кодову базу, редагувати файли, запускати команди й працювати за типовими workflow для debugging, testing і PR-oriented змін.
Що здати додатково
- Оновлений repo.
- Коротку схему архітектури.
CLAUDE.md.- 1 приклад AI-assisted workflow.
- Короткий runbook: як перевірити, що parser працює.
Інструменти, які можна або варто використати
- Crawl4AI — документація: https://docs.crawl4ai.com
- Docker Compose — документація: https://docs.docker.com/compose/
- Celery — документація: https://docs.celeryq.dev
- Prometheus — документація: https://prometheus.io/docs/introduction/overview/
- Grafana — документація: https://grafana.com/docs/
- Claude Code overview — документація: https://docs.anthropic.com/en/docs/claude-code/overview
- Claude Code common workflows — документація: https://docs.anthropic.com/en/docs/claude-code/common-workflows
- Claude Code subagents — документація: https://docs.anthropic.com/en/docs/claude-code/sub-agents
- Claude Code MCP — документація: https://docs.anthropic.com/en/docs/claude-code/mcp
- ScrapeGraphAI — GitHub: https://github.com/ScrapeGraphAI/Scrapegraph-ai
Suggested repository structure
repo-name/
├── compose.yaml
├── Dockerfile
├── README.md
├── CLAUDE.md # advanced level only
├── requirements.txt
├── src/
│ ├── worker_html.py
│ ├── worker_js.py # advanced level, optional
│ ├── normalize.py
│ └── config.py
├── data/
│ ├── raw/
│ └── normalized/
├── prompts/
│ └── check_parser_dom_change.md
├── docs/
│ ├── architecture.md # advanced level
│ └── runbook.md # advanced level
└── screenshots/
└── run-example.pngEvaluation checklist
Basic level checklist
- One public website selected.
- 10–15 pages collected.
- Project runs via Docker Compose.
-
worker-htmlimplemented. - Raw JSON files saved.
- Normalized JSON files saved.
- Basic logging added.
-
README.mdexplains how to run the project. - 2–3 JSON examples included.
- Screenshot of successful run included.
Advanced level checklist
- Second worker, queue, or task added.
- Scheduler added.
- Structured extraction added.
-
CLAUDE.mdcreated. - Claude Code prompt added.
- At least one metric added.
- Architecture scheme added.
- AI-assisted workflow example included.
- Runbook added.