Задача

Необходимо создать сервис для автоматического сбора данных из открытой веб-системы (авторизация, капча и пароль не требуются). Данные на сайте постоянно пополняются новыми записями.

Что нужно сделать?

  • Один раз собрать все доступные старые записи за всю историю (максимальная глубина выгрузки).
  • Настроить механику, которая выборочно подхватывает только новые записи по мере их добавления на сайт.

Технические требования

  • Парсинг с пагинацией: корректное прохождение по всем страницам, включая пагинацию, до исчерпания данных.
  • Финалные поля: сохранение заранее оговорённых данных (точный набор ключевых полей: дата, номер, заголовок и др. - будет обговорён дополнительно).
  • Формат CSV: выходной файл в кодировке UTF-8 с заголовками колонок.
  • Дедупликация: выбор уникального первичного признака (ID/URL или другой подходящий механизм - требуется предложить).
  • Инкрементальная логика: при повторном запуске программа не собирает заново уже имеющиеся данные, находит лишь свежие.
  • Логирование: отслеживание и запись количества найденных новых записей, возникающих ошибок.
  • Обработка сетевых сбоев: механизм повтора выполнения запроса (retry) с заданной задержкой при фейлах HTTP.
  • Вежливый краулинг: соответствие разумным задержка между запросами, чтобы не нагружать сервер.

Режим работы системы

Постоянный автоматический мониторинг сайта с фиксацией только изменившихся данных в CSV-файл (без дублей). История пополняется при каждом очередном запуске.