Реалізація планувальника парсингу за розкладом

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Реалізація планувальника парсингу за розкладом
Проста
від 1 робочого дня до 3 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Реалізація планувальника скрейпінгу за розкладом

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

Варіанти реалізації

Cron (Linux crontab) — найпростіший варіант для невеликої кількості завдань:

# Запуск парсера кожні 4 години
0 */4 * * * /usr/bin/python3 /opt/scrapers/catalog_spider.py >> /var/log/scraper.log 2>&1

Мінус: немає історії запусків, немає UI, складно керувати при десятках завдань.

Celery Beat — вибір для Python-проектів:

# celery_config.py
from celery.schedules import crontab

CELERYBEAT_SCHEDULE = {
    'parse-catalog': {
        'task': 'scrapers.tasks.run_catalog_parser',
        'schedule': crontab(hour='*/4'),
        'options': {'queue': 'scraping'}
    },
    'parse-prices': {
        'task': 'scrapers.tasks.run_price_parser',
        'schedule': crontab(minute=0, hour=6),
    },
}

Історія запусків через django-celery-results або flower для моніторингу.

Node.js: node-cron / Agenda

const Agenda = require('agenda');
const agenda = new Agenda({ db: { address: MONGODB_URI } });

agenda.define('parse catalog', async job => {
  const { sourceUrl } = job.attrs.data;
  await runCatalogScraper(sourceUrl);
});

await agenda.every('4 hours', 'parse catalog', { sourceUrl: 'https://...' });

Agenda зберігає завдання в MongoDB, підтримує повторні спроби при збої, пріоритети та блокування.

Що повинен умітиати планувальник

  • Запуск за розкладом (cron-вираз або інтервал)
  • Паралельний запуск кількох завдань з обмеженням паралелізму
  • Автоматичний повтор при помилці (з експоненціальною затримкою)
  • Алерт у Telegram/Slack при перевищенні порогу помилок
  • Зберігання історії: коли запускалось, скільки записів зібрано, помилки

Час реалізації планувальника на Celery Beat з історією та алертами: 2–3 робочі дні.