До портфоліо

ShopParser — парсер маркетплейсів

Desktop-застосунок для структурованого та контрольованого парсингу товарів із маркетплейсів із підтримкою preview, експорту, throttling та відновлення сесій.

Частина marketplace-specific логіки та правил парсингу прихована або спрощена.

Категорія

Desktop Apps

Дата

2026-05

Статус

Prototype / MVP

Роль

Архітектура, backend-розробка, desktop UI development

Технології

C#, .NET, WPF, AngleSharp, HttpClient, ClosedXML

Теги

C#, WPF, Web Scraping, Data Processing, Marketplace Automation

Огляд

ShopParser — це Windows desktop-застосунок для структурованого та контрольованого парсингу товарних каталогів маркетплейсів.

Програма орієнтована на побудову безпечного workflow збору даних, дозволяючи:

  • переглядати результати парсингу перед запуском;
  • налаштовувати поля експорту;
  • запускати throttled crawling;
  • експортувати результати;
  • відновлювати перервані сесії з checkpoint-стану.

Архітектура проекту спочатку проектувалася як extensible-система з підтримкою окремих marketplace adapters для різних платформ.


Контекст

Проект виник із потреби спростити структурований збір та експорт даних маркетплейсів для:

  • аналізу каталогів;
  • підготовки імпорту;
  • синхронізації товарів;
  • автоматизації обробки даних.

Основними вимогами були:

  • контрольоване та “polite” crawling-поведінка;
  • configurable exports;
  • підтримка marketplace-specific полів;
  • preview перед запуском повного crawl;
  • робота з великими каталогами;
  • можливість відновлення перерваних сесій.

Окремий акцент був зроблений на модульності архітектури для майбутнього підключення нових маркетплейсів.


Відповідальність

У межах проекту були реалізовані:

  • загальна архітектура системи;
  • crawl engine;
  • архітектура marketplace adapters;
  • desktop UI;
  • export subsystem;
  • throttling та retry logic;
  • checkpoint/resume workflow;
  • проектування моделей даних;
  • підготовка extensibility для майбутніх інтеграцій.

Рішення

Рішення реалізоване як WPF desktop-застосунок із модульною adapter-based архітектурою.

Користувач може:

  • вказати URL магазину;
  • переглянути preview результатів;
  • обрати поля експорту;
  • налаштувати формат результатів;
  • запускати повний crawl;
  • відновлювати перервані сесії.

Система підтримує marketplace-specific логіку експорту та ізольовані parsing workflows при спільній crawl-інфраструктурі.

Особлива увага приділялася “polite crawling”:

  • затримкам між запитами;
  • retry intervals;
  • jitter/randomization;
  • контрольованому HTTP-навантаженню.

Технічні деталі

Стек

  • C#
  • .NET
  • WPF
  • AngleSharp
  • HttpClient
  • ClosedXML
  • System.Text.Json

Архітектура

Проект складається з декількох основних шарів:

  • crawl engine;
  • marketplace adapters;
  • export subsystem;
  • UI workflow layer;
  • data models.

Інтеграції маркетплейсів реалізуються через спільний adapter interface, що дозволяє додавати нові платформи без зміни core-системи.

Функціональність

Реалізовано:

  • preview marketplace pages;
  • throttled crawling;
  • вибір export fields;
  • CSV export;
  • JSONL export;
  • XLSX export;
  • checkpoint-based resume;
  • retry та delay management;
  • structured logging;
  • marketplace-specific export presets.

Поточна реалізація орієнтована на:

  • Rozetka;
  • Prom.ua.

Виклики

Основними викликами були:

  • проектування marketplace-agnostic архітектури;
  • баланс між extensibility та простотою;
  • робота з нестабільною структурою marketplace pages;
  • реалізація “polite crawling”;
  • підтримка resumable long-running sessions;
  • організація export schemas для різних платформ.

Окремим викликом була підготовка архітектури до майбутнього розширення без жорсткого coupling parsing-логіки до конкретних сайтів.


Результат

Проект успішно продемонстрував:

  • модульну архітектуру marketplace parsing;
  • reusable crawl infrastructure;
  • desktop-oriented parsing workflow;
  • configurable export pipelines;
  • checkpoint-based session recovery;
  • scalable adapter-oriented system design.

Отримана архітектура може використовуватися як основа для майбутніх automation та catalog-processing рішень.


Медіа

Галерея містить:

  • приклади preview workflow;
  • налаштування експорту;
  • журнали crawling-процесу;
  • приклади експортованих даних.

Примітки

  • Навчальний/prototype-oriented проект.
  • Частина marketplace-specific логіки може бути спрощена або прихована.
  • Архітектура орієнтована на подальше розширення.
  • Основний акцент зроблено на контрольованому та “polite” crawling.

Галерея

Відео

Відеоогляд ще не опубліковано.

Посилання

Зовнішнє посилання недоступне для цього кейсу.