Навігація курсу: Проєкт: 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 + normalized JSON.
  • Додати простий 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 скриншот запуску.

Інструменти, які можна або варто використати


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 працює.

Інструменти, які можна або варто використати


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.png

Evaluation checklist

Basic level checklist

  • One public website selected.
  • 10–15 pages collected.
  • Project runs via Docker Compose.
  • worker-html implemented.
  • Raw JSON files saved.
  • Normalized JSON files saved.
  • Basic logging added.
  • README.md explains 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.md created.
  • Claude Code prompt added.
  • At least one metric added.
  • Architecture scheme added.
  • AI-assisted workflow example included.
  • Runbook added.