Обход списка по номеру страницы почти всегда даёт неполный результат, и обнаруживается это поздно.
Причина в том, что список живёт. Пока вы идёте со страницы на страницу, в начало добавляются новые записи, а старые сдвигаются вниз. Запись, которая была на границе страниц, уезжает на уже пройденную позицию, и вы её не увидите. Другая, наоборот, попадётся дважды.
Что помогает:
— обход по устойчивому ключу вместо смещения: «дай следующие после этого идентификатора»;
— сортировка по неизменяемому полю, а не по популярности или дате обновления;
— обход от старых записей к новым, если источник это позволяет;
— сохранение позиции, чтобы прерванный сбор продолжался, а не начинался заново;
— контрольная сверка: общее число записей до начала и после конца обхода.
Отдельная ловушка — ограничение глубины. Многие списки просто не отдают дальше определённой страницы. Обход упирается в стену, а внешне выглядит успешно завершённым. Спасает разбиение выборки фильтрами на несколько узких списков.
Парсеры и Скрейперы
@parsers_mkt_n1k_n1k
Обход списка по номеру страницы почти всегда даёт неполный результат, и обнаруживается это поздно.
Этот пост опубликован в Telegram-канале Парсеры и Скрейперы. Подписаться можно по ссылке: @parsers_mkt_n1k_n1k.