Почему: fetch_all_secondary(secondary_only=True) строил URL ОБЩЕЙ выдачи
(/kvartiry/prodam/<room-ASgB…>), скачивал 100 % (46 573 объявления в ЕКБ)
и выбрасывал новостройки после разбора — 79,4 % страниц и антибан-бюджета
впустую. У Авито есть родной фильтр: читаемый путь
/kvartiry/prodam/1-komnatnye/vtorichka (редирект на канонический, 2 551
объявление) — проверено вживую 21.08.2026 (#3033). Чем полнее обход, тем
выше отказ (full_load 83 % banned/failed против newbuilding_sweep 9,5 %) —
объём сам по себе фактор бана.
Что: _build_rooms_url в secondary-режиме (флаг на инстансе на время
fetch_all_secondary, сбрасывается в finally) строит путь из читаемого
префикса room-slug + /vtorichka; query (s, p, pmin, pmax) без изменений —
ценовая бисекция работает как раньше, но уже по распределению вторички.
Post-parse фильтр остаётся страховкой и счётчиком: last_dropped_nb →
AvitoFullLoadCounters.dropped_novostroyki (зеркало cian #1781) — при
работающем пути ≈0, рост = Авито перестал уважать путь, видно по числу.
Тест: подмена _fetch_serp_html, probe-URL всех seed-брекетов; на main
красный по значению (ASgB-slug в пути, /vtorichka нет); контроли —
secondary_only=False не меняется, режим не течёт за пределы вызова.
Refs #3033